@wildo-ai/saas-models 1.1.5 → 1.1.6

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 (888) hide show
  1. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  2. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -1
  3. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  4. package/dist/esm/applications/applications-context.schemas.d.ts +176 -2
  5. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  7. package/dist/esm/applications/applications.shared.resources-config.schemas.js +3 -2
  8. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  9. package/dist/esm/applications/applications.shared.schemas.d.ts +7 -5
  10. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  11. package/dist/esm/applications/applications.shared.schemas.js +6 -4
  12. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  13. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +10 -1
  14. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  15. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +49 -15
  16. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  17. package/dist/esm/billing/billing-account.shared.schemas.js +2 -2
  18. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  19. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +25 -0
  20. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  21. package/dist/esm/billing/billing-configuration.shared.schemas.js +19 -0
  22. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  23. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +27 -5
  24. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/billing-enums.shared.schemas.js +30 -4
  26. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  27. package/dist/esm/billing/billing-types.shared.schemas.d.ts +37 -11
  28. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/billing-types.shared.schemas.js +31 -19
  30. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  31. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +2 -0
  32. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  33. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +18 -7
  34. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  35. package/dist/esm/billing/credit-pool.shared.schemas.d.ts +2 -0
  36. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/credit-pool.shared.schemas.js +7 -1
  38. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  39. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +6 -6
  40. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  41. package/dist/esm/billing/invoice-ref.shared.schemas.js +1 -1
  42. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  43. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  44. package/dist/esm/billing/price.shared.schemas.js +5 -3
  45. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +11 -1
  47. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +39 -23
  49. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/product-definition.shared.schemas.d.ts +30 -2
  51. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  52. package/dist/esm/billing/product-definition.shared.schemas.js +35 -0
  53. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  54. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +6 -3
  55. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/product.shared.schemas.d.ts +7 -3
  57. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  58. package/dist/esm/billing/product.shared.schemas.js +22 -7
  59. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  60. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +8 -8
  61. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  62. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts +135 -0
  63. package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -0
  64. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js +112 -0
  65. package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -0
  66. package/dist/esm/billing/public-pricing-catalog.shared.d.ts +30 -0
  67. package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -0
  68. package/dist/esm/billing/public-pricing-catalog.shared.js +53 -0
  69. package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -0
  70. package/dist/esm/billing/referral-reward.shared.schemas.d.ts +51 -0
  71. package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -0
  72. package/dist/esm/billing/referral-reward.shared.schemas.js +92 -0
  73. package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -0
  74. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +54 -33
  75. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  76. package/dist/esm/billing/referral.shared.resources-config.schemas.js +56 -2
  77. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  78. package/dist/esm/billing/referral.shared.schemas.d.ts +22 -37
  79. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  80. package/dist/esm/billing/referral.shared.schemas.js +24 -44
  81. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  82. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +9 -1
  83. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  84. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +55 -22
  85. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  86. package/dist/esm/billing/subscription.shared.schemas.d.ts +80 -5
  87. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/billing/subscription.shared.schemas.js +85 -25
  89. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  90. package/dist/esm/billing/usage-record.shared.schemas.js +5 -5
  91. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  92. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +143 -2
  93. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  94. package/dist/esm/companion/provider-discovery.shared.schemas.js +84 -1
  95. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  96. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -1
  97. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  98. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +4 -0
  99. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  100. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +70 -0
  101. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
  102. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +87 -0
  103. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
  104. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +34 -0
  105. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
  106. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +137 -3
  107. package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
  108. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +7 -0
  109. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  110. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
  111. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +28 -2
  112. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  113. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +29 -8
  114. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  115. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +29 -6
  116. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +38 -9
  118. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  119. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1822 -146
  120. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  121. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +1777 -87
  122. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  123. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +10 -0
  124. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  125. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +148 -7
  126. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  127. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +2 -0
  128. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  129. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +2 -0
  130. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
  131. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +0 -8
  132. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +0 -1
  133. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +0 -1
  134. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +17 -8
  135. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
  136. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +43 -20
  137. package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
  138. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +38 -0
  139. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  140. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +39 -0
  141. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
  142. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts +35 -0
  143. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -0
  144. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js +82 -0
  145. package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -0
  146. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts +37 -0
  147. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -0
  148. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js +223 -0
  149. package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -0
  150. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts +222 -0
  151. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -0
  152. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js +331 -0
  153. package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -0
  154. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +37 -3
  155. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  156. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +33 -4
  157. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
  158. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts +52 -0
  159. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -0
  160. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js +116 -0
  161. package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -0
  162. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts +11 -0
  163. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -0
  164. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js +11 -0
  165. package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -0
  166. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts +93 -0
  167. package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -0
  168. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js +149 -0
  169. package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -0
  170. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts +43 -0
  171. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -0
  172. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js +106 -0
  173. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -0
  174. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +209 -0
  175. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -0
  176. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js +226 -0
  177. package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -0
  178. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +129 -5
  179. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  180. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +128 -4
  181. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
  182. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts +53 -0
  183. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -0
  184. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js +74 -0
  185. package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -0
  186. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts +311 -0
  187. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -0
  188. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js +355 -0
  189. package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -0
  190. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +178 -39
  191. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  192. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +145 -35
  193. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
  194. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +26 -0
  196. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
  197. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +9 -0
  198. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  200. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +109 -1
  201. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/app-configuration-shared.shared.schemas.js +57 -0
  203. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  204. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +69 -0
  205. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/entity-identity-config.shared.schemas.js +93 -0
  207. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  208. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
  209. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +160 -61
  210. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  211. package/dist/esm/config/frontend/navigation.shared.schemas.js +297 -65
  212. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  213. package/dist/esm/errors/caught-error-description.shared.utils.d.ts +69 -0
  214. package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -0
  215. package/dist/esm/errors/caught-error-description.shared.utils.js +77 -0
  216. package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -0
  217. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +76 -3
  218. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  219. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +76 -2
  220. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  221. package/dist/esm/errors/errors.shared.schemas.d.ts +20 -1
  222. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/errors/errors.shared.schemas.js +16 -9
  224. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  225. package/dist/esm/errors/errors.shared.utils.d.ts +0 -24
  226. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  227. package/dist/esm/errors/errors.shared.utils.js +0 -39
  228. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  229. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +6 -7
  230. package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
  231. package/dist/esm/errors/thrown-value-description.shared.utils.js +6 -7
  232. package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
  233. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts +70 -0
  234. package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -0
  235. package/dist/esm/external-data/external-data-pipeline-description.shared.js +92 -0
  236. package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -0
  237. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts +154 -0
  238. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -0
  239. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js +161 -0
  240. package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -0
  241. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +1071 -23
  242. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  243. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +1065 -17
  244. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  245. package/dist/esm/external-data/external-data-provenance.shared.d.ts +71 -0
  246. package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -0
  247. package/dist/esm/external-data/external-data-provenance.shared.js +88 -0
  248. package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -0
  249. package/dist/esm/external-data.exports.d.ts +5 -0
  250. package/dist/esm/external-data.exports.d.ts.map +1 -1
  251. package/dist/esm/external-data.exports.js +11 -0
  252. package/dist/esm/external-data.exports.js.map +1 -1
  253. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +17 -2
  254. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  255. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +22 -4
  256. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  257. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  258. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +3 -0
  259. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  260. package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -1
  261. package/dist/esm/external-providers/engine-capability-surface.shared.js +2 -0
  262. package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
  263. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +152 -1
  264. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  265. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +4 -3
  266. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +4 -3
  268. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  269. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +45 -0
  270. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  271. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +14 -0
  272. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  273. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +188 -4
  274. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +76 -9
  276. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -33
  278. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
  279. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +247 -42
  280. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
  281. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts +53 -0
  282. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -0
  283. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js +41 -0
  284. package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -0
  285. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts +150 -0
  286. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -0
  287. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js +22 -0
  288. package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -0
  289. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts +42 -0
  290. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -0
  291. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js +49 -0
  292. package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -0
  293. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +53 -0
  294. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +56 -0
  296. package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
  297. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +34 -0
  298. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  299. package/dist/esm/external-providers/provider-capability.shared.schemas.js +34 -0
  300. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  301. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +341 -4
  302. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +270 -20
  304. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  305. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +6 -2
  306. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
  307. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +6 -2
  308. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
  309. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +174 -1
  310. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +125 -0
  312. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  313. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +3 -3
  314. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts +42 -0
  315. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -0
  316. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js +57 -0
  317. package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -0
  318. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +6 -0
  319. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  320. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +6 -0
  321. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  322. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts +58 -0
  323. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -0
  324. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js +35 -0
  325. package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -0
  326. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts +115 -0
  327. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -0
  328. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js +137 -0
  329. package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -0
  330. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts +73 -0
  331. package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -0
  332. package/dist/esm/external-providers/provider-usage-cost.shared.js +171 -0
  333. package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -0
  334. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts +12 -0
  335. package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -0
  336. package/dist/esm/external-providers/provider-usage-pricing.example.js +40 -0
  337. package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -0
  338. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +68 -32
  339. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  340. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +63 -52
  341. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
  342. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +5 -5
  343. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  344. package/dist/esm/features/application-features.shared.resources-config.schemas.js +13 -5
  345. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  346. package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
  347. package/dist/esm/features/connected-feature.example.js +2 -1
  348. package/dist/esm/features/connected-feature.example.js.map +1 -1
  349. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  350. package/dist/esm/features/core-feature-definitions.shared.js +2 -1
  351. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  352. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  353. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  354. package/dist/esm/features/feature-definition.shared.schemas.d.ts +2 -11
  355. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  356. package/dist/esm/features/feature-definition.shared.schemas.js +0 -12
  357. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  358. package/dist/esm/features/scope-features.shared.schemas.d.ts +31 -17
  359. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  360. package/dist/esm/features/scope-features.shared.schemas.js +27 -5
  361. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  362. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +5 -5
  363. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +127 -11
  364. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  365. package/dist/esm/flows-actors/actors.shared.schemas.js +32 -1
  366. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  367. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +16 -0
  368. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +7 -0
  370. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
  371. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts +68 -0
  372. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -0
  373. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js +276 -0
  374. package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -0
  375. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts +468 -0
  376. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -0
  377. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js +472 -0
  378. package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -0
  379. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts +118 -0
  380. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -0
  381. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js +144 -0
  382. package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -0
  383. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +142 -8
  384. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  385. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +209 -11
  386. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  387. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +37 -2
  388. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  389. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +30 -2
  390. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  391. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +0 -11
  392. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +12 -5
  394. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  395. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +45 -6
  396. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  397. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +31 -5
  398. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  399. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +30 -30
  400. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  401. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +15 -7
  402. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  403. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +15 -0
  404. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +506 -0
  406. package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
  407. package/dist/esm/flows-actors/human-decision.shared.schemas.js +502 -0
  408. package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
  409. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts +46 -0
  410. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -0
  411. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js +65 -0
  412. package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -0
  413. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts +120 -0
  414. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -0
  415. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js +165 -0
  416. package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -0
  417. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts +45 -0
  418. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -0
  419. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js +127 -0
  420. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -0
  421. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts +83 -0
  422. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js +97 -0
  424. package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -0
  425. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts +136 -0
  426. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -0
  427. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js +90 -0
  428. package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -0
  429. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +5 -1
  430. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
  431. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +19 -4
  432. package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
  433. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +13 -15
  434. package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +30 -17
  436. package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
  437. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts +268 -0
  438. package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -0
  439. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js +576 -0
  440. package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -0
  441. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +30 -0
  442. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts +129 -0
  444. package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -0
  445. package/dist/esm/flows-actors/work-attribution.shared.schemas.js +141 -0
  446. package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -0
  447. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts +22 -1
  448. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  449. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +23 -0
  450. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  451. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +61 -0
  452. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
  453. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +61 -0
  454. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
  455. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  456. package/dist/esm/guidance/guidance-state.shared.schemas.js +11 -10
  457. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  458. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +6 -6
  459. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  460. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  461. package/dist/esm/guidance/progression-state.shared.schemas.js +8 -7
  462. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  463. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +1 -1
  464. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
  465. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +550 -30
  466. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  467. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +498 -34
  468. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  469. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts +62 -0
  470. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -0
  471. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js +66 -0
  472. package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -0
  473. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts +133 -0
  474. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -0
  475. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js +191 -0
  476. package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -0
  477. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +37 -6
  478. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
  479. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +37 -6
  480. package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
  481. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts +36 -0
  482. package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -0
  483. package/dist/esm/i18n/application-config-vocabulary.shared.js +39 -0
  484. package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -0
  485. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts +11 -0
  486. package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -0
  487. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js +14 -0
  488. package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -0
  489. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts +20 -0
  490. package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -0
  491. package/dist/esm/i18n/engine-open-vocabulary.shared.js +21 -0
  492. package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -0
  493. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts +94 -0
  494. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -0
  495. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js +206 -0
  496. package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -0
  497. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts +169 -0
  498. package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -0
  499. package/dist/esm/inbound/conversation-threads.shared.schemas.js +231 -0
  500. package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -0
  501. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts +195 -0
  502. package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -0
  503. package/dist/esm/inbound/inbound-channels.shared.schemas.js +244 -0
  504. package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -0
  505. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts +36 -0
  506. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -0
  507. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js +169 -0
  508. package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -0
  509. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts +404 -0
  510. package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -0
  511. package/dist/esm/inbound/inbound-delivery.shared.schemas.js +449 -0
  512. package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -0
  513. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts +46 -0
  514. package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -0
  515. package/dist/esm/inbound/inbound-endpoint-env.shared.js +57 -0
  516. package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -0
  517. package/dist/esm/index.d.ts +58 -1
  518. package/dist/esm/index.d.ts.map +1 -1
  519. package/dist/esm/index.js +67 -1
  520. package/dist/esm/index.js.map +1 -1
  521. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +28 -0
  522. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  523. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js +29 -0
  524. package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  525. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +95 -1
  526. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
  527. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +121 -0
  528. package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
  529. package/dist/esm/meta-workflows.exports.d.ts +0 -1
  530. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  531. package/dist/esm/meta-workflows.exports.js +0 -1
  532. package/dist/esm/meta-workflows.exports.js.map +1 -1
  533. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +7 -1
  534. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  535. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +35 -0
  536. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  537. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts +131 -0
  538. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -0
  539. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js +258 -0
  540. package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -0
  541. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts +448 -0
  542. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -0
  543. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js +530 -0
  544. package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -0
  545. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  546. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +4 -3
  547. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
  548. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +16 -1
  549. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  550. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +46 -16
  551. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  552. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +19 -12
  553. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  554. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +77 -12
  555. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  556. package/dist/esm/notifications/notification-badges.schemas.d.ts +35 -3
  557. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  558. package/dist/esm/notifications/notification-badges.schemas.js +43 -3
  559. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  560. package/dist/esm/notifications/notifications.shared.schemas.d.ts +66 -399
  561. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  562. package/dist/esm/notifications/notifications.shared.schemas.js +111 -58
  563. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  564. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +5 -5
  565. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +6 -6
  566. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  567. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +3 -0
  568. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  569. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +60 -14
  570. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  571. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +3 -0
  572. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  573. package/dist/esm/organizations/organization-members.shared.schemas.js +30 -0
  574. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  575. package/dist/esm/organizations/organization-notifications.shared.schemas.js +9 -9
  576. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  577. package/dist/esm/organizations/organization-preferences.shared.schemas.js +4 -4
  578. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  579. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +0 -1
  580. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  581. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +5 -5
  582. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  583. package/dist/esm/organizations/organization-profile.shared.schemas.js +15 -10
  584. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  585. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +1 -1
  586. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
  587. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  588. package/dist/esm/organizations/organization-unit-members.shared.schemas.js +2 -1
  589. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
  590. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +63 -1
  591. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  592. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +106 -5
  593. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
  594. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  595. package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -0
  596. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  597. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  598. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +7 -2
  599. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  600. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +3 -1
  601. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  602. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +12 -8
  603. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  604. package/dist/esm/organizations/organizations.shared.schemas.d.ts +7 -2
  605. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  606. package/dist/esm/organizations/organizations.shared.schemas.js +51 -1
  607. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  608. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts +58 -0
  609. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -0
  610. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js +188 -0
  611. package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -0
  612. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts +122 -0
  613. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -0
  614. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js +136 -0
  615. package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -0
  616. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts +36 -0
  617. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -0
  618. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js +155 -0
  619. package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -0
  620. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts +229 -0
  621. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -0
  622. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js +290 -0
  623. package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -0
  624. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts +48 -0
  625. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -0
  626. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js +50 -0
  627. package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -0
  628. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts +97 -0
  629. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -0
  630. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js +572 -0
  631. package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -0
  632. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts +590 -0
  633. package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -0
  634. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js +869 -0
  635. package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -0
  636. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -6
  637. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  638. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +57 -16
  639. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  640. package/dist/esm/provider-registration-runtime.exports.d.ts +0 -1
  641. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  642. package/dist/esm/provider-registration-runtime.exports.js +0 -1
  643. package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
  644. package/dist/esm/public-runtime/index.d.ts +30 -11
  645. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  646. package/dist/esm/public-runtime/index.js +30 -11
  647. package/dist/esm/public-runtime/index.js.map +1 -1
  648. package/dist/esm/queue/jobs.shared.schemas.d.ts +36 -8
  649. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  650. package/dist/esm/queue/jobs.shared.schemas.js +12 -0
  651. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  652. package/dist/esm/requests/header-keys.shared.d.ts +6 -0
  653. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  654. package/dist/esm/requests/header-keys.shared.js +7 -0
  655. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  656. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  657. package/dist/esm/requests/manual-controllers-routes-documentation.js +147 -8
  658. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  659. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +51 -23
  660. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  661. package/dist/esm/requests/manual-controllers-routes-urls.js +64 -0
  662. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  663. package/dist/esm/requests/websocket.shared.schemas.d.ts +78 -13
  664. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  665. package/dist/esm/requests/websocket.shared.schemas.js +91 -18
  666. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  667. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts +21 -0
  668. package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -0
  669. package/dist/esm/resources/embedded-resource-mark.shared.utils.js +22 -0
  670. package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -0
  671. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  672. package/dist/esm/resources/resources-config.shared.factory.js +812 -32
  673. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  674. package/dist/esm/resources/resources-config.shared.schemas.d.ts +244 -48
  675. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  676. package/dist/esm/resources/resources-config.shared.schemas.js +151 -17
  677. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  678. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  679. package/dist/esm/resources/resources-registry.shared.core.definitions.js +353 -12
  680. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  681. package/dist/esm/resources/resources.shared.core.definitions.d.ts +45 -0
  682. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  683. package/dist/esm/resources/resources.shared.core.definitions.js +92 -0
  684. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  685. package/dist/esm/resources/resources.shared.schemas.d.ts +2 -17
  686. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  687. package/dist/esm/resources/resources.shared.schemas.js +24 -20
  688. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  689. package/dist/esm/resources/resources.shared.utils.d.ts +16 -8
  690. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  691. package/dist/esm/resources/resources.shared.utils.js +16 -8
  692. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  693. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +2 -2
  694. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  695. package/dist/esm/resources/utils/collection-export.shared.utils.js +4 -2
  696. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
  697. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts +103 -0
  698. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -0
  699. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js +275 -0
  700. package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -0
  701. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts +51 -0
  702. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -0
  703. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js +28 -0
  704. package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -0
  705. package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
  706. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +30 -19
  707. package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
  708. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts +2 -0
  709. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -0
  710. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js +33 -0
  711. package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -0
  712. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +15 -0
  713. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  714. package/dist/esm/resources/utils/resource-polymorphism.factory.js +6 -1
  715. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  716. package/dist/esm/resources/utils/resource-polymorphism.schemas.js +30 -4
  717. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  718. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +46 -0
  719. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  720. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +205 -22
  721. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  722. package/dist/esm/resources/utils/resources-serialization.utils.d.ts +19 -2
  723. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  724. package/dist/esm/resources/utils/resources-serialization.utils.js +4 -0
  725. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  726. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  727. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +15 -9
  728. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  729. package/dist/esm/resources/work-unit.shared.schemas.d.ts +20 -0
  730. package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -0
  731. package/dist/esm/resources/work-unit.shared.schemas.js +19 -0
  732. package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -0
  733. package/dist/esm/runtime/execution-context.shared.schemas.d.ts +48 -1
  734. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  735. package/dist/esm/runtime/execution-context.shared.schemas.js +101 -9
  736. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  737. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
  738. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +37 -20
  740. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  741. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
  742. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  743. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +61 -48
  744. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  745. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +26 -0
  746. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  747. package/dist/esm/security/api-keys/api-keys.shared.schemas.js +39 -5
  748. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  749. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -3
  750. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  751. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +6 -0
  752. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  753. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +2 -2
  754. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -1
  755. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts +11 -0
  756. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  757. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +19 -8
  758. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  759. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +1 -1
  760. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +5 -5
  761. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  762. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +11 -11
  763. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  764. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +2 -0
  765. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  766. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +9 -0
  767. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  768. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts +169 -0
  769. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -0
  770. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js +162 -0
  771. package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -0
  772. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  773. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +10 -8
  774. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  775. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +8 -8
  776. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  777. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  778. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +17 -16
  779. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  780. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +28 -25
  782. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  783. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +17 -6
  784. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  785. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +90 -38
  786. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  787. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +0 -24
  788. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +79 -68
  790. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  791. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +8 -1
  792. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  793. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +7 -0
  794. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  795. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +1 -1
  796. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
  797. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +7 -7
  798. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  799. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  800. package/dist/esm/security/authorizations/roles.shared.defaults.js +56 -0
  801. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  802. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +77 -1
  803. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  804. package/dist/esm/security/authorizations/roles.shared.schemas.js +90 -0
  805. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  806. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts +86 -0
  807. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -0
  808. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js +40 -0
  809. package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -0
  810. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +2 -1
  811. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  812. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +2 -1
  813. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  814. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +2 -1
  815. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  816. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +2 -1
  817. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  818. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +46 -14
  819. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  820. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +81 -21
  821. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  822. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts +69 -0
  823. package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -0
  824. package/dist/esm/security/credential-rotation-grace.shared.utils.js +77 -0
  825. package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -0
  826. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  827. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +28 -8
  828. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  829. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +3 -1
  830. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  831. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +89 -14
  832. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  833. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +1 -0
  834. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  835. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +25 -4
  836. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  837. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +7 -1
  838. package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
  839. package/dist/esm/security/outbound-target-control.shared.schemas.js +6 -0
  840. package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
  841. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts +143 -0
  842. package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -0
  843. package/dist/esm/security/submission-challenge/submission-challenge.shared.js +123 -0
  844. package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -0
  845. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts +384 -0
  846. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -0
  847. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js +327 -0
  848. package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -0
  849. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +121 -8
  850. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
  851. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +83 -4
  852. package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
  853. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +266 -8
  854. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
  855. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +291 -7
  856. package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
  857. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +313 -3
  858. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
  859. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +369 -3
  860. package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
  861. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
  862. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +2 -1
  863. package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
  864. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +5 -3
  865. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  866. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +19 -10
  867. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  868. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  869. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +6 -0
  870. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
  871. package/dist/esm/users/user-preferences-reset.shared.utils.js +2 -2
  872. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
  873. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +0 -3
  874. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  875. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +0 -3
  876. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  877. package/dist/esm/users/user-self.shared.resources-config.schemas.js +1 -1
  878. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  879. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  880. package/dist/esm/users/users.shared.resources-config.schemas.js +82 -20
  881. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  882. package/dist/esm/users/users.shared.schemas.d.ts +12 -9
  883. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  884. package/dist/esm/users/users.shared.schemas.js +49 -18
  885. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  886. package/package.json +4 -4
  887. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +0 -7
  888. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"audit-export-projection.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-export-projection.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,2FAA2F;AAC3F,kGAAkG;AAClG,iCAAiC;AACjC,OAAO,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,yBAsDX;AAtDD,WAAY,yBAAyB;IACnC;;;;OAIG;IACH,4CAAe,CAAA;IACf;;;OAGG;IACH,wDAA2B,CAAA;IAC3B;;;;;;OAMG;IACH,gDAAmB,CAAA;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,8CAAiB,CAAA;AACnB,CAAC,EAtDW,yBAAyB,KAAzB,yBAAyB,QAsDpC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAN,IAAY,8BAoBX;AApBD,WAAY,8BAA8B;IACxC;;;;;;;;OAQG;IACH,mEAAiC,CAAA;IACjC;;;;;;;OAOG;IACH,mEAAiC,CAAA;AACnC,CAAC,EApBW,8BAA8B,KAA9B,8BAA8B,QAoBzC;AAkBD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,gGAAgG;IAChG,gGAAgG;IAChG,OAAO,EAAE,yBAAyB,CAAC,KAAK;IACxC,iGAAiG;IACjG,SAAS,EAAE,yBAAyB,CAAC,KAAK;IAC1C,kFAAkF;IAClF,aAAa,EAAE,yBAAyB,CAAC,KAAK;IAC9C,6EAA6E;IAC7E,QAAQ,EAAE,yBAAyB,CAAC,KAAK;IACzC,wEAAwE;IACxE,SAAS,EAAE,yBAAyB,CAAC,KAAK;IAC1C,gGAAgG;IAChG,cAAc,EAAE,yBAAyB,CAAC,KAAK;IAC/C;;;;;OAKG;IACH,MAAM,EAAE,yBAAyB,CAAC,KAAK;IACvC,kFAAkF;IAClF,aAAa,EAAE,yBAAyB,CAAC,KAAK;IAC9C,yFAAyF;IACzF,aAAa,EAAE,yBAAyB,CAAC,KAAK;IAC9C,6FAA6F;IAC7F,iBAAiB,EAAE,yBAAyB,CAAC,KAAK;IAClD,+DAA+D;IAC/D,OAAO,EAAE,yBAAyB,CAAC,KAAK;IAExC,gGAAgG;IAChG,iEAAiE;IACjE,SAAS,EAAE,yBAAyB,CAAC,WAAW;IAChD,yFAAyF;IACzF,SAAS,EAAE,yBAAyB,CAAC,WAAW;IAChD,4DAA4D;IAC5D,SAAS,EAAE,yBAAyB,CAAC,WAAW;IAChD,0BAA0B;IAC1B,WAAW,EAAE,yBAAyB,CAAC,WAAW;IAClD;;;;OAIG;IACH,gBAAgB,EAAE,yBAAyB,CAAC,WAAW;IAEvD,gGAAgG;IAChG,uFAAuF;IACvF,aAAa,EAAE,yBAAyB,CAAC,OAAO;IAChD,qDAAqD;IACrD,mBAAmB,EAAE,yBAAyB,CAAC,OAAO;IACtD,sGAAsG;IACtG,gBAAgB,EAAE,yBAAyB,CAAC,OAAO;IACnD,aAAa,EAAE,yBAAyB,CAAC,OAAO;IAChD,eAAe,EAAE,yBAAyB,CAAC,OAAO;IAClD,qEAAqE;IACrE,UAAU,EAAE,yBAAyB,CAAC,OAAO;IAC7C,wDAAwD;IACxD,UAAU,EAAE,yBAAyB,CAAC,OAAO;IAC7C,WAAW,EAAE,yBAAyB,CAAC,OAAO;IAC9C,cAAc,EAAE,yBAAyB,CAAC,OAAO;IAEjD,gGAAgG;IAChG,4FAA4F;IAC5F,SAAS,EAAE,yBAAyB,CAAC,MAAM;IAC3C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,EAAE,yBAAyB,CAAC,MAAM;CACM,CAAC;AAyDxD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAEhB,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAmE;IAChH,gGAAgG;IAChG,mFAAmF;IACnF,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClF,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACnF,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxF,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEtF,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpF,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpF,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpF,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE9F;;;OAGG;IACH,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9G,sFAAsF;IACtF,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEzG,gGAAgG;IAChG,iGAAiG;IACjG,6FAA6F;IAC7F,0FAA0F;IAC1F,+FAA+F;IAC/F,6DAA6D;IAC7D,EAAE;IACF,kGAAkG;IAClG,qFAAqF;IACrF,6EAA6E;IAC7E,kGAAkG;IAClG,wFAAwF;IACxF,qDAAqD;IACrD,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,yBAAyB;IACzB,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACvG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9F,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9F,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE5G,gGAAgG;IAChG,mFAAmF;IACnF,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACnG,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACnG,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxG,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1G,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACnG,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1G,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxG,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7G,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAExG,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACtF,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE5F,gGAAgG;IAChG;;;;;;;;;;;OAWG;IACH,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9G;;;;;;;;OAQG;IACH,CAAC,sBAAsB,CAAC,mCAAmC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3G,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzG,CAAC,sBAAsB,CAAC,4CAA4C,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEpH,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,yEAAyE;IACzE,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5G,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChH,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7G,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChH,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxG,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACrG,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxG,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChH,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAExG,gGAAgG;IAChG;;;OAGG;IACH,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEvG,gGAAgG;IAChG;;;OAGG;IACH,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAExG,gGAAgG;IAChG,8FAA8F;IAC9F,uBAAuB;IACvB,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACxG,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE7F,gGAAgG;IAChG,+DAA+D;IAC/D,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACrG,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACrG,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACvF,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACtG,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9F,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC/F,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC/F,CAAC,sBAAsB,CAAC,mCAAmC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3G,CAAC,sBAAsB,CAAC,mCAAmC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3G,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9F,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEtG,gGAAgG;IAChG,+FAA+F;IAC/F,8FAA8F;IAC9F,sEAAsE;IACtE,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzF,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACtG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE1F,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC/F,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACnG,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACrG,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACvG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACvG,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAEzG,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAClG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9F,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAChG,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC/F,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE1G,gGAAgG;IAChG,wFAAwF;IACxF,4FAA4F;IAC5F,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC7F,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpF,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1G,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACvG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC1G,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC5F,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC9G,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC3F,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAE9F,gGAAgG;IAChG,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACzG,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IAC/F,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACjG,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACrF,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,8BAA8B,CAAC,cAAc;IACpG;;;;;;;;;OASG;IACH,CAAC,sBAAsB,CAAC,+CAA+C,CAAC,EAAE,8BAA8B,CAAC,cAAc;CACxH,CAAC;AAEF;;;;;;;;GAQG;AACH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5H,yBAAyB,CAAC,WAAW;QACrC,yBAAyB,CAAC,OAAO;QACjC,yBAAyB,CAAC,MAAM;KACjC,CAAC;IACF;;;;OAIG;IACH,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9H,8BAA8B,CAAC,cAAc;QAC7C,8BAA8B,CAAC,cAAc;KAC9C,CAAC;CACH,CAAC,CAAC;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,cAAc,EAAE;QACd,yBAAyB,CAAC,WAAW;QACrC,yBAAyB,CAAC,OAAO;QACjC,yBAAyB,CAAC,MAAM;KACjC;IACD,yBAAyB,EAAE;QACzB,8BAA8B,CAAC,cAAc;QAC7C,8BAA8B,CAAC,cAAc;KAC9C;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,OAAO,CACL,kCAAkC,CAAC,SAAmC,CAAC;WACpE,8BAA8B,CAAC,cAAc,CACjD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAAiB,EACjB,WAA6C;IAE7C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GACrB,cAAc,CAAC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC;WACjD,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3F,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAGrE,EAAE,CAAC;QACJ,IAAI,IAAI,KAAK,yBAAyB,CAAC,KAAK,EAAE,CAAC;YAC7C,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,yBAAyB,CAAC,MAAM,EAAE,CAAC;YAC9C,IAAI,iBAAiB;gBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAoC,EACpC,WAA6C;IAE7C,MAAM,SAAS,GAAG,8BAA8B,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,SAAS,GAA+B,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAwC,EAAE,CAAC;QACtG,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACnC,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,8FAA8F;QAC9F,OAAQ,SAAqC,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["/**\n * Audit-export projection — what a SIEM destination MAY receive, declared once.\n *\n * ## Why this exists at all, and why it is `_core` rather than a SIEM feature\n *\n * A tenant sending audit events to a third-party SIEM is sending them to a processor of its own\n * choosing, in a jurisdiction of its own choosing. Data minimisation is that operator's duty, and\n * until this contract existed the only place they could discharge it was AT THE RECEIVER — after\n * the data had already left the building. An export that cannot be trimmed is an export some\n * customers cannot lawfully switch on.\n *\n * The obvious-looking place to put the answer did not exist. The dispatcher assembles the envelope\n * by hand-picking values off `auditEvent.eventData` (`userEmail: eventData.email`, and its\n * neighbours), so there was no object to attach a projection to: the contract had to exist FIRST.\n * Two accepted-and-ignored booleans (`includeRawEventData`, `includeDeviceContext`) had occupied\n * the space and were removed in `be001548` precisely because a stored flag that changes nothing is\n * worse than its absence — their own removal note says the capability they named \"would be built on\n * the envelope contract, not on two booleans beside the retry policy\". This is that contract.\n *\n * ## This is NOT `.isAuditEvidence()`, and the two must never be merged\n *\n * `.isAuditEvidence()` decides which FIELD VALUES are copied INTO the immutable audit row. It\n * answers *what must the application be able to prove to itself*, it is correct as it is, and its\n * answer is deliberately maximal — the ledger is the evidence.\n *\n * This contract answers a different question with a different answer: *what may this application\n * disclose to a processor of the tenant's choosing*. The two diverge by design. A row the ledger\n * must retain forever is routinely a row a tenant's DPA forbids exporting, and one decorator\n * meaning both would force the weaker answer onto the stronger obligation.\n *\n * ## Two declarations, and the ORDER between them is the design\n *\n * - **The EVENT TYPE declares what MAY leave** ({@link AUDIT_EXPORT_EVENT_DATA_DISCLOSURE}), total\n * over `CoreAuditableEventType`, so an event added tomorrow has to answer the question.\n * - **The DESTINATION narrows it** ({@link AuditExportProjectionDeclaration}), per tenant and per\n * agreement, which is what a customer actually negotiates.\n *\n * The event-type half is built first and is not optional, because a destination cannot narrow a set\n * nobody has enumerated: shipping only the destination half would mean the first tenant to\n * configure one is choosing from an undeclared surface.\n *\n * ## The floor cannot be trimmed, and that is structural rather than advisory\n *\n * {@link AuditExportDisclosureTier.FLOOR} fields survive whatever a destination declares —\n * {@link resolveDisclosedEnvelopeFields} unions them in unconditionally, so a declaration of `[]`\n * still yields a correlatable event. Three independent reasons, and only the first is about\n * privacy:\n *\n * 1. **`eventId` IS the receiver's dedup key** in every wire format (CEF `externalId`, LEEF\n * `eventId`, OCSF `metadata.uid`, `json_structured`'s top-level `eventId`), and the DLQ drain\n * re-sends a stored envelope. Minimise past it and the feed stops being idempotent against a\n * service that retries — a \"minimised\" export nobody can correlate is not a privacy win, it is\n * an unusable feed that still left the building.\n * 2. **`eventType`, `severity` and `sourceVersion` are CEF/LEEF HEADER slots.** A header field\n * cannot be omitted without shifting every field after it, so trimming one does not minimise a\n * record — it corrupts it.\n * 3. **The remaining floor members are the record's own identity** — when, in which tenant, by\n * which actor reference, with what outcome. A row that cannot say those things is not a\n * shorter audit event; it is not an audit event.\n *\n * `sourceEnvironment` is FLOOR and is the one member worth justifying, because it is neither an\n * identity nor a header slot: it names the deployment environment (`production`), it is not data\n * about any person, it is REQUIRED on the envelope type, and the CEF contract records it as the\n * cheapest triage filter a SOC has. Trimming it would cost a receiver real capability and protect\n * nobody.\n *\n * ## Applied ONCE, at the ENQUEUE SEAM — which is what makes every format consistent\n *\n * The projection is applied inside `AuditEventDispatcherBackendService.enqueueSiemWebhookDelivery`,\n * before the F6 HMAC and before the job is enqueued. So the minimised envelope is the ONLY envelope\n * that exists downstream: it is what is signed, what is queued, what a DLQ row stores, and what a\n * drain replays.\n *\n * **The seam rather than the call site, and the difference is not stylistic.** It landed at the\n * dispatch call site first, which left that public method able to enqueue an un-minimised envelope\n * for any producer that found it — the one-of-N shape `invariant-call-site-enumeration.md` exists\n * for, and live rather than hypothetical, since the batching lane is extending that very seam. The\n * seam already owned the other two elements of the delivery contract (the HMAC and the batch ref);\n * the projection is the third.\n *\n * Moving it also FIXED the dead-letter retry, which the call-site version could not: a drain\n * re-enqueues stored bytes with a freshly loaded configuration, so a tenant that narrows its\n * projection on discovering over-disclosure now has that narrowing reach rows already\n * dead-lettered. Re-application is safe both ways, because the projection only ever DELETES.\n *\n * Four consequences, each of which would have been a separate defect had the projection been\n * applied per-format instead:\n *\n * - **All four wire formats carry it identically, for free.** Every CEF/LEEF render already guards\n * `e.x ? c.pair(...) : undefined` (for the DLQ-replay reason), and every OCSF assignment does the\n * same — so a trimmed field emits NO key rather than an empty one. That distinction is not\n * cosmetic in CEF: a `csN` slot is emitted as a `csNLabel`/`csN` PAIR, and an empty `cs4=` with\n * its label still present would tell a receiver the field exists and is blank. Absent is absent.\n * - **The DLQ stores less.** A dead-lettered delivery holds only what the destination was allowed\n * to receive, so a queue outage does not park un-minimised personal data.\n * - **A retry cannot drift from the attempt it continues** — the same property the single enqueue\n * seam already guards.\n * - **The HMAC covers the bytes that actually leave.**\n *\n * @see `.claude/context/audit-trails.md` — the SIEM wire-format projections this rides on top of.\n */\n\nimport { z } from 'zod';\n// Side-effect import: this module calls `.systemEnum()` at load, so the decorators must be\n// installed first — never by the importer's luck (#966). A named import used only as a type would\n// be elided and install nothing.\nimport '@wildo-ai/zod-decorators';\n\nimport { CoreAuditableEventType } from './auditable-events.shared.schema';\nimport type { SecurityAuditEventEnvelope } from './security-audit-event-envelope.shared.schema';\n\n/**\n * What KIND of thing an envelope field is, for the purpose of deciding whether a destination may\n * receive it.\n *\n * Deliberately a SMALL closed vocabulary rather than per-field switches on the destination. A DPA\n * is negotiated in these terms — *\"we will not send you identifiers of our users\"* — and a tenant\n * choosing from 27 field names would be choosing from an implementation detail that moves. The tiers\n * are the stable surface; the field-to-tier assignment is the framework's judgement and is\n * compile-enforced to be total.\n */\nexport enum AuditExportDisclosureTier {\n /**\n * Never trimmable, whatever a destination declares. The record's identity, its outcome, its\n * actor reference, and the header slots the text grammars structurally require. See this module's\n * header for the three independent reasons.\n */\n FLOOR = 'floor',\n /**\n * Who the person is and where they were — the personal-data surface of the envelope. The tier a\n * tenant exporting to a processor in another jurisdiction most often wants dropped.\n */\n ATTRIBUTION = 'attribution',\n /**\n * Operational context that is not about a person: which request, which surface, which tenant\n * label, which authentication mechanism, which identity source.\n *\n * Note what is NOT here: `outcomeReason`. It reads like context and is DETAIL, because it is\n * lifted out of the event's own bag — see that tier's note.\n */\n CONTEXT = 'context',\n /**\n * Content that CAME FROM the per-event `eventData` bag — the bag itself, and any envelope field\n * the dispatcher lifted out of it. Disclosure is decided a second time by the event type's own\n * {@link AuditExportEventDataDisclosure}.\n *\n * **\"Came from the bag\" rather than \"is the bag\", and the difference was a real hole.** The\n * dispatcher PROMOTES values onto the envelope — `outcomeReason` is\n * `eventData.failureReason || eventData.reason` — so a promoted field classified by what it looks\n * like (a short reason string, plausibly CONTEXT) outlives the bag it was copied from.\n *\n * **The population is defined by those two keys, because they are the only ones the dispatcher\n * reads.** Measured over the core vocabulary: **27** event schemas declare a top-level\n * `failureReason` or `reason` and can therefore put text into `outcomeReason`, and **19** of them\n * carry the operator-typed `reason` — including every organization-lifecycle event whose\n * `SUBJECT_DETAIL` classification rests on precisely that free text. A destination that withheld\n * those bags was still receiving their prose.\n *\n * An earlier note said \"22 … `reason` or `justification`\", which is a real count of a population\n * this field does not have: `justification` is never read here, so three of those 22 could not\n * reach `outcomeReason` at all while eight schemas that can (`failureReason` only) were left out.\n * Both numbers were arithmetically right and the denominator was chosen rather than derived —\n * `derive-before-you-ask.md` Shape 2, inside the very rationale written to fix a leak.\n *\n * The operative rule is the general one: **a field's declared tier must be TRUE of every value it\n * can carry.** `userEmail` is promoted from the bag too and is ATTRIBUTION, because every value it\n * can hold is an address — the tier is true of all of them. `outcomeReason` is DETAIL because the\n * tier CONTEXT was not true of the free-text values it can hold, and nothing narrower than the\n * bag's own class can separate those from the enum-ish ones.\n *\n * So the practical test when adding a promoted field is not \"where did it come from\" alone — it\n * is \"can this field carry something its tier would be a lie about?\". Where the answer is yes and\n * the value comes from the bag, DETAIL is the only tier that can gate it honestly.\n */\n DETAIL = 'detail',\n}\n\n/**\n * What an event type's `eventData` bag CONTAINS — the event-type half of the contract.\n *\n * The question this answers is narrow on purpose: *does the bag carry content about a person,\n * beyond the actor reference the envelope already carries?* It is asked of the EVENT TYPE because\n * that is the only place it can be answered once — the bag is an open record whose shape is decided\n * by the emitter, so no property of the envelope can decide it.\n *\n * Only TWO members, and the binary is the point: a third \"it depends\" member would be a place to\n * put the entries nobody wanted to judge, and every entry that landed there would be read as safe.\n */\nexport enum AuditExportEventDataDisclosure {\n /**\n * The bag carries data ABOUT a person — an email address, an IP, a name, a value they supplied,\n * or free text somebody wrote which may name anyone.\n *\n * **This is the fail-closed answer and the default for anything not verified.** An event wrongly\n * marked here costs a minimising tenant a bag they could have had; an event wrongly marked\n * {@link ADMINISTRATIVE} discloses personal data to a destination that asked not to receive it.\n * The two errors are not symmetric, so the doubt resolves here.\n */\n SUBJECT_DETAIL = 'subject-detail',\n /**\n * The bag describes CONFIGURATION or SYSTEM STATE. Any identifier in it is an actor or resource\n * reference the envelope already implies, and it carries no contact data, no supplied values and\n * no free text.\n *\n * Mark an event here only after READING its `eventData` schema. The set is deliberately small;\n * growing it is a per-event decision with the schema in front of you, not a sweep.\n */\n ADMINISTRATIVE = 'administrative',\n}\n\n/**\n * Every field of the envelope, assigned a disclosure tier.\n *\n * **Total over `Required<SecurityAuditEventEnvelope>` with `-?`**, the same construction the CEF and\n * LEEF projection contracts use and for the same reason: a field added to the envelope is a COMPILE\n * ERROR here until someone decides what it is. The alternative — a hand-kept list of sensitive\n * fields — has no way to say what it left out, and what it leaves out is disclosed.\n *\n * Declared as a mapped TYPE rather than a `Record<string, …>` so the keys cannot drift from the\n * envelope, and `as const satisfies` so the assignments keep their literal types for\n * {@link AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE} below.\n */\nexport type AuditExportFieldDisclosureContract = {\n readonly [F in keyof Required<SecurityAuditEventEnvelope>]-?: AuditExportDisclosureTier;\n};\n\nexport const AUDIT_EXPORT_FIELD_DISCLOSURE = {\n // ── FLOOR ────────────────────────────────────────────────────────────────────────────────────\n /** The receiver's dedup key AND the only handle joining a SIEM record back to its audit row. */\n eventId: AuditExportDisclosureTier.FLOOR,\n /** CEF `Device Event Class ID` + `Name`, LEEF `EventID` — header slots in both text grammars. */\n eventType: AuditExportDisclosureTier.FLOOR,\n /** What the record IS. A receiver's own category filter is written against it. */\n eventCategory: AuditExportDisclosureTier.FLOOR,\n /** CEF's mandatory `agentSeverity` header slot, and what a SOC alerts on. */\n severity: AuditExportDisclosureTier.FLOOR,\n /** When. An audit event without a time is not a shorter audit event. */\n timestamp: AuditExportDisclosureTier.FLOOR,\n /** Which tenant. Also the scope the feed is routed on, so a record denying it is unreadable. */\n organizationId: AuditExportDisclosureTier.FLOOR,\n /**\n * The ACTOR REFERENCE — an opaque id, never a name or an address. Deliberately FLOOR while\n * `userEmail` is ATTRIBUTION: an id lets a receiver correlate one actor's events without learning\n * who they are, which is exactly the trade a minimising tenant is trying to make. Dropping it\n * would leave a feed in which nothing can be attributed to anything.\n */\n userId: AuditExportDisclosureTier.FLOOR,\n /** Which application emitted it. Required on the envelope and names no person. */\n sourceService: AuditExportDisclosureTier.FLOOR,\n /** CEF `Device Version`, LEEF `Product Version` — header slots in both text grammars. */\n sourceVersion: AuditExportDisclosureTier.FLOOR,\n /** See the module header: required, impersonal, and the cheapest triage filter a SOC has. */\n sourceEnvironment: AuditExportDisclosureTier.FLOOR,\n /** Success or failure. Half of what an audit record is for. */\n outcome: AuditExportDisclosureTier.FLOOR,\n\n // ── ATTRIBUTION ──────────────────────────────────────────────────────────────────────────────\n /** A person's address. The single field most DPAs name first. */\n userEmail: AuditExportDisclosureTier.ATTRIBUTION,\n /** Personal data in its own right, and the field that places a person geographically. */\n ipAddress: AuditExportDisclosureTier.ATTRIBUTION,\n /** Device and software fingerprint of a person's client. */\n userAgent: AuditExportDisclosureTier.ATTRIBUTION,\n /** Where a person was. */\n geoLocation: AuditExportDisclosureTier.ATTRIBUTION,\n /**\n * A pseudonymous identifier under GDPR Art. 4(5) by its own schema declaration, and the axis that\n * groups one person ACROSS sessions and logins — which is precisely what makes it more disclosing\n * than a per-request id, not less.\n */\n clientInstanceId: AuditExportDisclosureTier.ATTRIBUTION,\n\n // ── CONTEXT ──────────────────────────────────────────────────────────────────────────────────\n /** Groups the events of one request. About the request, not the person who made it. */\n correlationId: AuditExportDisclosureTier.CONTEXT,\n /** Which frontend surface (app / website / docs). */\n frontendServiceName: AuditExportDisclosureTier.CONTEXT,\n /** A tenant LABEL. A legal person is not a data subject, but it is still the tenant's to withhold. */\n organizationName: AuditExportDisclosureTier.CONTEXT,\n applicationId: AuditExportDisclosureTier.CONTEXT,\n applicationName: AuditExportDisclosureTier.CONTEXT,\n /** How the principal authenticated. A mechanism, not an identity. */\n authMethod: AuditExportDisclosureTier.CONTEXT,\n /** Which identity source. A configuration reference. */\n authSource: AuditExportDisclosureTier.CONTEXT,\n providerRef: AuditExportDisclosureTier.CONTEXT,\n connectionType: AuditExportDisclosureTier.CONTEXT,\n\n // ── DETAIL ───────────────────────────────────────────────────────────────────────────────────\n /** The open per-event bag. Gated a second time by the event type's own disclosure class. */\n eventData: AuditExportDisclosureTier.DETAIL,\n /**\n * DETAIL, not CONTEXT, because it is not a field of its own — it is a value the dispatcher LIFTED\n * OUT of the bag (`eventData.failureReason || eventData.reason`), so it travels with the bag it\n * came from. The operator is `||` rather than `??`, which is not pedantry here: an EMPTY\n * `failureReason` falls through to `reason`, so an event can reach the free-text branch even when\n * it declares the enum-ish one.\n *\n * It was CONTEXT, classified by its shape: usually an enum-ish failure reason, which reads as\n * impersonal operational context. That was wrong in the direction that matters. **27** core event\n * schemas declare a top-level `failureReason` or `reason` — the two keys the dispatcher reads, so\n * that is the population — and **19** of them carry the operator-typed `reason`: the organization\n * lifecycle events, `EMERGENCY_ACCESS_USED`, `RETAINED_DATA_ACCESS` (whose `reason` is required\n * and is the #954 operator justification), `USER_PASSWORD_RESET_FORCED`,\n * `RESOURCE_OPERATION_PERFORMED`. The organization-lifecycle entries in the event-data map below\n * give that free text as the WHOLE reason their bags are `SUBJECT_DETAIL`. So the contract\n * refused those bags and then handed their prose over anyway, through a field labelled context.\n *\n * The cost of the correction is real and is the right way round: a tenant that withholds detail\n * now also loses the ordinary enum-shaped failure reason on, say, `USER_LOGIN_FAILED`. It can get\n * it back by admitting `DETAIL` with `ADMINISTRATIVE` bags, and a reason it cannot have is one\n * that may name somebody.\n */\n outcomeReason: AuditExportDisclosureTier.DETAIL,\n} as const satisfies AuditExportFieldDisclosureContract;\n\n/** One envelope field name, as the disclosure contract names it. */\nexport type AuditExportEnvelopeField = keyof typeof AUDIT_EXPORT_FIELD_DISCLOSURE;\n\n/** Envelope fields this contract permits a destination to trim. */\ntype TrimmableEnvelopeField = {\n [F in AuditExportEnvelopeField]: (typeof AUDIT_EXPORT_FIELD_DISCLOSURE)[F] extends AuditExportDisclosureTier.FLOOR\n ? never\n : F;\n}[AuditExportEnvelopeField];\n\n/**\n * Envelope fields the TYPE declares OPTIONAL — the ones `delete` can honestly remove.\n *\n * ## `{} extends Pick<T, F>` is the optionality test, and `undefined extends T[F]` is NOT\n *\n * **This package compiles with `strict: false`, so `strictNullChecks` is OFF, and under that\n * setting `undefined` is assignable to every type.** `undefined extends string` is therefore TRUE\n * here, every field maps to `never`, the intersection below is empty for every input, and a guard\n * built on it reports success no matter what anyone classifies. That is not a subtlety of the\n * formulation — it is the whole test collapsing.\n *\n * This guard shipped in exactly that state and was caught by mutating it: with `sourceEnvironment`\n * deliberately mis-declared as trimmable, the `undefined extends` version typechecked clean.\n *\n * **Two plausible culprits were proposed for it and BOTH were wrong**, which is why the real cause\n * is spelled out rather than summarised. It is not `-?` \"stripping `undefined` from the property\n * type\", and it is not indexing through `Required<E>` — measured against this very envelope type,\n * the `-?` form, the `Required<E>` form and a bare form are ALL `never`, because the `undefined\n * extends` test cannot discriminate under this tsconfig regardless of how it is spelled.\n *\n * `Pick` survives because it tests the optional MODIFIER, which exists in the type's syntax and is\n * unaffected by `strictNullChecks`. The outer `-?` is doing an unrelated job: it stops the indexed\n * access from adding `undefined` to the result union.\n *\n * **Generalise it: in any package here without `strictNullChecks`, a type-level test of the shape\n * `undefined extends X` is vacuously true and silently useless.** Most engine packages are in that\n * state. Reach for a modifier-based test, and mutate the guard before believing it.\n */\ntype OmittableEnvelopeField = {\n [F in keyof SecurityAuditEventEnvelope]-?: Record<never, never> extends Pick<SecurityAuditEventEnvelope, F>\n ? F\n : never;\n}[keyof SecurityAuditEventEnvelope];\n\n/** Envelope fields the TYPE requires — a value that cannot simply be deleted. */\ntype RequiredEnvelopeField = Exclude<keyof SecurityAuditEventEnvelope, OmittableEnvelopeField>;\n\n/**\n * Any field that is trimmable AND required — i.e. one {@link applyAuditExportProjection} could not\n * honestly remove. `eventData` is the one legitimate member of that intersection: it is required by\n * the envelope type and is emptied to `{}` rather than deleted, which every wire format already\n * reads as \"no detail\" (both text grammars omit the key for an empty bag, and OCSF omits `unmapped`).\n */\ntype TrimmableFieldThatCannotBeOmitted = Exclude<Extract<TrimmableEnvelopeField, RequiredEnvelopeField>, 'eventData'>;\n\n/**\n * COMPILE-TIME GUARD, not a runtime value — the constant is never read.\n *\n * It fails to typecheck, naming the offending field, if anyone classifies a REQUIRED envelope field\n * as trimmable. That is the one way this contract could promise a minimisation it cannot perform:\n * the applier would leave the field in place and a tenant would receive data it declared it would\n * not. The failure is silent at runtime and total at compile time, which is the right way round.\n *\n * If a new required field genuinely must be trimmable, make it optional on the envelope (every\n * wire-format render already guards for absence, for the DLQ-replay reason) rather than widening\n * this guard.\n */\nexport const AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE: [TrimmableFieldThatCannotBeOmitted] extends [never]\n ? true\n : TrimmableFieldThatCannotBeOmitted = true;\n\n/**\n * Every core auditable event's `eventData` disclosure class — the EVENT-TYPE half of the contract.\n *\n * **Total over `CoreAuditableEventType`**, so a member added to the vocabulary is a compile error\n * until its author answers the question. That totality is the whole reason this is a map rather\n * than a per-destination list: a destination enumerating event types is a hand-kept list against a\n * vocabulary that moves, and a newly-added event would silently export everything or nothing\n * depending on which way its default fell.\n *\n * **Unverified entries are {@link AuditExportEventDataDisclosure.SUBJECT_DETAIL}, deliberately.**\n * Only the events below carry `ADMINISTRATIVE`, and each was classified by READING its\n * `eventData` schema and confirming it holds configuration or counts and no free text. Everything\n * else takes the fail-closed answer — including events whose bag is very likely harmless — because\n * the cost of being wrong in that direction is a tenant losing detail it could have had, while the\n * other direction discloses personal data to a destination that asked not to receive it.\n *\n * An application's OWN event types are not in this map and resolve to `SUBJECT_DETAIL` through\n * {@link resolveEventDataDisclosure}, for the same reason.\n */\nexport const AUDIT_EXPORT_EVENT_DATA_DISCLOSURE: Record<CoreAuditableEventType, AuditExportEventDataDisclosure> = {\n // ── Authentication ───────────────────────────────────────────────────────────────────────────\n // Every bag here carries some combination of email, IP, user-agent and session id.\n [CoreAuditableEventType.USER_LOGIN]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_LOGOUT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_ACCOUNT_LOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_ENABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_DISABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SESSION_EXPIRED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SESSION_EVICTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_AUTH_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_AUTH_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── User lifecycle ───────────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.USER_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_APP_ROLES_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n /**\n * VERIFIED ADMINISTRATIVE: counts, the conferring role names, and the statuses that count as\n * usable. The event is about the APPLICATION having no administrator; it names no person.\n */\n [CoreAuditableEventType.APPLICATION_SUPER_ADMIN_FLOOR_BREACHED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Its organization twin is NOT administrative: the bag carries `reducedMemberIds` and\n // `subjectUserId`, which is a list of people rather than the envelope's single actor reference.\n [CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization lifecycle ───────────────────────────────────────────────────────────────────\n // Read, and NOT administrative — but by THREE different routes, which an earlier version of this\n // comment flattened into one (\"every one of these bags carries an operator-typed `reason`\").\n // Measured, that was false for three of the nine, and a rationale that overstates its own\n // evidence is the invented-denominator shape `derive-before-you-ask.md` warns about — sitting,\n // here, inside the justification that a later fix leaned on.\n //\n // - MOST carry an operator-typed `reason` / `justification` / `suspensionReason`: free text that\n // may name anybody. `_DELETED`, `_DELETION_REQUESTED`, `_RESTORED`, `_ACTIVATED`,\n // `_TYPE_ASSIGNED`, `_SUSPENDED`, `RESOURCE_STATUS_TRANSITION_PERFORMED`.\n // - `ORGANIZATION_UPDATED` carries `changes: z.record(z.string(), z.any())` — an OPEN bag, which\n // cannot be asserted to hold no data about a person. Same argument that reclassified\n // `ORGANIZATION_SSO_CONFIGURATION_CHANGED` below.\n // - `ORGANIZATION_CREATED` carries only `name`, `slug` and `createdBy`, and is SUBJECT_DETAIL on\n // the fail-closed default alone — no free text, no open bag, simply not verified as safe. That\n // is the honest entry, and naming it as such is what stops the next reader assuming the whole\n // group was measured.\n [CoreAuditableEventType.ORGANIZATION_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_TYPE_ASSIGNED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_DELETION_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_RESTORED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_SUSPENDED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_ACTIVATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_STATUS_TRANSITION_PERFORMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization membership ──────────────────────────────────────────────────────────────────\n // Membership bags name the member, the inviter and the roles — people, throughout.\n [CoreAuditableEventType.ORGANIZATION_MEMBER_INVITED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_JOINED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_ROLE_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_STATUS_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_NOTIFICATIONS_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PREFERENCES_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROFILE_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── SSO authentication ───────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.USER_SSO_LOGIN]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SSO_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SSO_ENFORCEMENT_BLOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_TOKEN_REFRESHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization security configuration ──────────────────────────────────────────────────────\n /**\n * SUBJECT_DETAIL, and it was ADMINISTRATIVE for one review cycle on the stated grounds \"a config\n * diff, its change type and the provider ref. No free text.\" The diff is\n * `changes: z.record(z.string(), z.any())` — an UNBOUNDED OPEN BAG, which cannot be asserted to\n * hold no data about a person whatever it happens to contain today. The same source file names\n * that exact shape as the one an audit payload must not have.\n *\n * The reclassification costs nothing measurable and is worth reading as a warning: the event has\n * **no emitter anywhere in production source** (its emit method was removed in #591), so the\n * \"verification\" behind the original entry was a reading of a schema that nothing populates. An\n * open record is unverifiable by construction — fail closed and say so.\n */\n [CoreAuditableEventType.ORGANIZATION_SSO_CONFIGURATION_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n /**\n * VERIFIED ADMINISTRATIVE: the three SIEM-export change events carry the tenant, the actor\n * reference, the change type, the destination's DOMAIN (never the full URL, never the\n * credential), the configured format and the names of the changed fields. Configuration\n * throughout, and no free text.\n *\n * They are also the events a retired destination receives as its LAST event (#986), so a\n * minimising tenant keeping them is exactly the intended outcome.\n */\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_CONFIGURED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DISABLED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DESTINATION_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── Provider credentials and connections ─────────────────────────────────────────────────────\n // No payload here carries a credential VALUE — that is structural. But the user-scoped half names\n // a person's relationship with a named vendor, and the organization-scoped half carries the\n // account and scopes a principal authorized, so both are subject detail.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CONNECTION_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CONNECTION_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Application security configuration ───────────────────────────────────────────────────────\n /**\n * VERIFIED ADMINISTRATIVE: the changed user types, a snapshot digest, and the before/after policy\n * blocks. Authored configuration with no human actor at all — the event is emitted at boot.\n */\n [CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── Outbound webhook ─────────────────────────────────────────────────────────────────────────\n /**\n * VERIFIED ADMINISTRATIVE: the dispatching actor reference, the endpoint id, the destination\n * HOST, the outcome and a duration. An operator-supplied URL is configuration, not a person.\n */\n [CoreAuditableEventType.WEBHOOK_ENDPOINT_TEST_DISPATCHED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── SCIM directory provisioning ──────────────────────────────────────────────────────────────\n // Provisioning is ABOUT people by definition; the token events ride the same lane and are not\n // separately verified.\n [CoreAuditableEventType.SCIM_TOKEN_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_GENERATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_PROVISIONING_CONFIG_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_PROVISIONING_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_PROVISIONED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_DEACTIVATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Credential and factor lifecycle ──────────────────────────────────────────────────────────\n // Every bag names the person whose credential or factor moved.\n [CoreAuditableEventType.USER_PASSWORD_RESET_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_RESET_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_RESET_FORCED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_EMAIL_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_VERIFICATION_EMAIL_RESENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_TOTP_DISABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_IDENTITY_LINK_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_SETUP_STARTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_SETUP_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_EMAIL_OTP_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_FAILURE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_CLONE_SUSPECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PHONE_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PHONE_VERIFICATION_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── SAML ─────────────────────────────────────────────────────────────────────────────────────\n // None of these has a typed eventData schema, so nothing can be verified about their bags. The\n // two that LOOK administrative (`SAML_CERT_EXPIRING`, `SAML_METADATA_PARSED`) are exactly the\n // entries a guess would get wrong, and are fail-closed with the rest.\n [CoreAuditableEventType.SAML_LOGIN_INITIATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_LOGIN_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_ASSERTION_REPLAY_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_CERT_EXPIRING]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_SLO_INITIATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_SLO_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_METADATA_PARSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_EMAIL_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── OAuth / OIDC provider ────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.OAUTH2_PROVIDER_BLOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_DELEGATED_TOKEN_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANT_PERSISTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_DYNAMIC_CLIENT_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CIMD_CLIENT_REFUSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_TOKEN_REFRESHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_RP_INITIATED_LOGOUT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CODE_EXCHANGE_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_BINDING_VIOLATION]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Files and one-off tokens ─────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REDEEMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_SHARE_LINK_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_SHARE_LINKS_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_MALWARE_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_MALWARE_SCAN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_EXCHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_CROSS_FRONTEND_HANDOFF_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Access, disclosure and administrative reach ──────────────────────────────────────────────\n // The generic resource and field events carry whatever the operation touched, including\n // before/after values of `.isAuditEvidence()` fields — the broadest bags in the vocabulary.\n [CoreAuditableEventType.EMERGENCY_ACCESS_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FIELD_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_OPERATION_PERFORMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_OPERATION_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PLATFORM_ACCESS_GRANT_LIFECYCLE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SYSTEM_CONTEXT_READ]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SYSTEM_CONTEXT_WRITE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PLATFORM_CONFIGURATION_PUBLICATION]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RETAINED_DATA_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.GOVERNED_DOCUMENT_INTERACTION_RECORDED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SUBJECT_DATA_EXPORT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.COLLECTION_DATA_EXPORT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── External integration ─────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PROVIDER_OPERATION_CALL]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PROVIDER_OPERATION_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MCP_TOOL_CALL]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.AGENT_TOOL_APPROVAL_MODIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n /*\n * Everything else in this bag IS configuration — the transition, the assignment row, the declared\n * instance, the remote partition key, and the units on either side of the move. On those alone it\n * would be ADMINISTRATIVE.\n *\n * `justification` decides it. The operator's stated reason is FREE TEXT a person wrote, recorded on\n * every transition, and free text may name anyone — which is this vocabulary's own criterion for\n * SUBJECT_DETAIL rather than a cautious reading of it. `assignedByUserId` is only the actor the\n * envelope already implies and would not have been enough on its own.\n */\n [CoreAuditableEventType.SYSTEM_OF_RECORD_PARTITION_ASSIGNMENT_LIFECYCLE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n};\n\n/**\n * What one DESTINATION has declared it may receive — the per-tenant, per-agreement half.\n *\n * Two arrays rather than one, and the interaction between them is the reason. A tenant that drops\n * {@link AuditExportDisclosureTier.ATTRIBUTION} while keeping the detail bag would still receive\n * the email address inside `eventData` for every authentication event — a minimisation that reads\n * as a control and is not one. {@link disclosedEventDataClasses} is what closes that: declaring\n * `[ADMINISTRATIVE]` keeps the bags that carry configuration and drops the ones that carry people.\n */\n/*\n * Both members declare `.systemEnum(...)` ON THE ELEMENT, which is where the decorator goes for an\n * array of enums (`organizationPreferences.supportedLanguages` is the precedent).\n *\n * Without it these two vocabularies would get words authored per FIELD PATH rather than once per\n * enum, and a reader of the SIEM pane would be choosing between raw wire values like\n * `subject-detail` — see `.claude/rules/display-text-comes-from-i18n.md`. A new closed vocabulary\n * reaching a UI is exactly the moment to declare it; the words themselves are authored by the\n * labelling pipeline under `system_enums.<Name>.<value>` and are never hand-written here.\n */\nexport const SiemExportProjectionDeclarationSchema = z.object({\n /**\n * Which tiers, beyond the floor, this destination may receive.\n *\n * **`FLOOR` is not a choice, so it is not offered.** The floor is added unconditionally by\n * {@link resolveDisclosedEnvelopeFields}, and declaring `[]` yields a floor-only feed rather than\n * an empty one.\n *\n * This used to accept the whole vocabulary, on the reasoning that declaring `FLOOR` was\n * \"redundant rather than wrong\". That was true of the API and false of the SCREEN: the settings\n * pane renders one checkbox per member, so it offered a `floor` toggle — and on every destination\n * that had not ticked it, displayed it UNCHECKED. An operator reading \"floor ☐\" believes the event\n * id, type, timestamp and user id are withheld, and none of them is. That is the exact shape this\n * contract exists to remove — a control that renders and does nothing — and it was found by\n * opening the pane in a browser, not by any test (#1395).\n *\n * Derived from the one named vocabulary with `.exclude(['FLOOR'])` rather than declared as a\n * second enum: the tiers a destination may choose are a SUBSET of the tiers a field may have, and\n * a parallel list would be a second copy to keep in step. The key is type-checked against the\n * enum, so renaming the member is a compile error here rather than a silent drift.\n *\n * Defaults to everything: a destination that has declared no minimisation has not asked for one,\n * and silently narrowing an existing tenant's feed would be a worse failure than not narrowing a\n * new one.\n */\n disclosedTiers: z.array(z.enum(AuditExportDisclosureTier).exclude(['FLOOR']).systemEnum('AuditExportDisclosureTier')).default([\n AuditExportDisclosureTier.ATTRIBUTION,\n AuditExportDisclosureTier.CONTEXT,\n AuditExportDisclosureTier.DETAIL,\n ]),\n /**\n * Which `eventData` bags this destination may receive, by the EVENT TYPE's declared class. Read\n * only when {@link AuditExportDisclosureTier.DETAIL} is disclosed; an event type outside the core\n * vocabulary resolves to `SUBJECT_DETAIL`.\n */\n disclosedEventDataClasses: z.array(z.enum(AuditExportEventDataDisclosure).systemEnum('AuditExportEventDataDisclosure')).default([\n AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n AuditExportEventDataDisclosure.ADMINISTRATIVE,\n ]),\n});\n\nexport type AuditExportProjectionDeclaration = z.infer<typeof SiemExportProjectionDeclarationSchema>;\n\n/**\n * The projection a destination that has declared nothing receives: everything.\n *\n * FAIL-OPEN, deliberately, and it is the one place in this contract where that is right. An absent\n * declaration is not a tenant asking for minimisation — it is a tenant that has not configured one,\n * and every existing destination is in that state. Failing closed here would silently stop\n * delivering fields to feeds that are working today, which is a bigger and quieter harm than\n * continuing the current behaviour until an operator narrows it deliberately.\n */\nexport const FULL_AUDIT_EXPORT_PROJECTION: AuditExportProjectionDeclaration = {\n disclosedTiers: [\n AuditExportDisclosureTier.ATTRIBUTION,\n AuditExportDisclosureTier.CONTEXT,\n AuditExportDisclosureTier.DETAIL,\n ],\n disclosedEventDataClasses: [\n AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n AuditExportEventDataDisclosure.ADMINISTRATIVE,\n ],\n};\n\n/**\n * What an event type's `eventData` bag carries, including for event types an APPLICATION defined.\n *\n * An unknown type resolves to {@link AuditExportEventDataDisclosure.SUBJECT_DETAIL} — the opposite\n * direction from `getAuditEventClassification`, whose fallback exists to give an application event\n * a usable category. Here the fallback decides a DISCLOSURE, so it takes the safe answer: an\n * application's own bag is the one this framework knows least about.\n */\nexport function resolveEventDataDisclosure(eventType: string): AuditExportEventDataDisclosure {\n return (\n AUDIT_EXPORT_EVENT_DATA_DISCLOSURE[eventType as CoreAuditableEventType]\n ?? AuditExportEventDataDisclosure.SUBJECT_DETAIL\n );\n}\n\n/**\n * The envelope fields one destination may receive for one event.\n *\n * The floor is unioned in unconditionally — **this is where \"a floor cannot be trimmed\" is\n * enforced**, not in the applier and not in the schema's defaults, so no declaration a tenant can\n * write and no future caller can produce a feed without it.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — the destination's declaration decides which\n * envelope fields may leave for an external processor, and the floor is the part of that decision\n * the framework keeps: a record that cannot be correlated or de-duplicated is not a minimised\n * export.\n */\nexport function resolveDisclosedEnvelopeFields(\n eventType: string,\n declaration: AuditExportProjectionDeclaration,\n): ReadonlySet<AuditExportEnvelopeField> {\n const disclosedTiers = new Set(declaration.disclosedTiers);\n const eventDataAdmitted =\n disclosedTiers.has(AuditExportDisclosureTier.DETAIL)\n && declaration.disclosedEventDataClasses.includes(resolveEventDataDisclosure(eventType));\n\n const disclosed = new Set<AuditExportEnvelopeField>();\n for (const [field, tier] of Object.entries(AUDIT_EXPORT_FIELD_DISCLOSURE) as readonly [\n AuditExportEnvelopeField,\n AuditExportDisclosureTier,\n ][]) {\n if (tier === AuditExportDisclosureTier.FLOOR) {\n disclosed.add(field);\n continue;\n }\n if (tier === AuditExportDisclosureTier.DETAIL) {\n if (eventDataAdmitted) disclosed.add(field);\n continue;\n }\n if (disclosedTiers.has(tier)) disclosed.add(field);\n }\n return disclosed;\n}\n\n/**\n * Apply a destination's projection to an envelope, returning the envelope that may actually leave.\n *\n * Returns a NEW object — the caller fans one audit event out to several tenants' sinks, each with\n * its own declaration, so mutating in place would let the first destination's minimisation reach\n * the second's delivery.\n *\n * **Omitted is not empty**, which the CEF `csN` slots make more than a nicety: a trimmed optional\n * field is DELETED, so a render that guards `e.x ? … : undefined` emits neither the value nor its\n * `csNLabel` companion. `eventData` is the one exception — it is required by the envelope type, so\n * it is emptied to `{}`, which every format already reads as \"no detail\" (both text grammars omit\n * their detail key for an empty bag; OCSF omits `unmapped` for the same reason). The compile-time\n * guard {@link AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE} is what keeps that exception the only\n * one.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — the act itself: only the fields the\n * destination's declaration admits survive into the envelope that is signed, queued and delivered\n * to a third-party processor of the tenant's choosing.\n */\nexport function applyAuditExportProjection(\n envelope: SecurityAuditEventEnvelope,\n declaration: AuditExportProjectionDeclaration,\n): SecurityAuditEventEnvelope {\n const disclosed = resolveDisclosedEnvelopeFields(envelope.eventType, declaration);\n const projected: SecurityAuditEventEnvelope = { ...envelope };\n\n for (const field of Object.keys(AUDIT_EXPORT_FIELD_DISCLOSURE) as readonly AuditExportEnvelopeField[]) {\n if (disclosed.has(field)) continue;\n if (field === 'eventData') {\n projected.eventData = {};\n continue;\n }\n // Every other trimmable field is optional on the envelope — see the compile-time guard above.\n delete (projected as Record<string, unknown>)[field];\n }\n\n return projected;\n}\n"]}
1
+ {"version":3,"file":"audit-export-projection.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-export-projection.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Audit-export projection — what a SIEM destination MAY receive, declared once.\n *\n * ## Why this exists at all, and why it is `_core` rather than a SIEM feature\n *\n * A tenant sending audit events to a third-party SIEM is sending them to a processor of its own\n * choosing, in a jurisdiction of its own choosing. Data minimisation is that operator's duty, and\n * until this contract existed the only place they could discharge it was AT THE RECEIVER — after\n * the data had already left the building. An export that cannot be trimmed is an export some\n * customers cannot lawfully switch on.\n *\n * The obvious-looking place to put the answer did not exist. The dispatcher assembles the envelope\n * by hand-picking values off `auditEvent.eventData` (`userEmail: eventData.email`, and its\n * neighbours), so there was no object to attach a projection to: the contract had to exist FIRST.\n * Two accepted-and-ignored booleans (`includeRawEventData`, `includeDeviceContext`) had occupied\n * the space and were removed in `be001548` precisely because a stored flag that changes nothing is\n * worse than its absence — their own removal note says the capability they named \"would be built on\n * the envelope contract, not on two booleans beside the retry policy\". This is that contract.\n *\n * ## This is NOT `.isAuditEvidence()`, and the two must never be merged\n *\n * `.isAuditEvidence()` decides which FIELD VALUES are copied INTO the immutable audit row. It\n * answers *what must the application be able to prove to itself*, it is correct as it is, and its\n * answer is deliberately maximal — the ledger is the evidence.\n *\n * This contract answers a different question with a different answer: *what may this application\n * disclose to a processor of the tenant's choosing*. The two diverge by design. A row the ledger\n * must retain forever is routinely a row a tenant's DPA forbids exporting, and one decorator\n * meaning both would force the weaker answer onto the stronger obligation.\n *\n * ## Two declarations, and the ORDER between them is the design\n *\n * - **The EVENT TYPE declares what MAY leave** ({@link AUDIT_EXPORT_EVENT_DATA_DISCLOSURE}), total\n * over `CoreAuditableEventType`, so an event added tomorrow has to answer the question.\n * - **The DESTINATION narrows it** ({@link AuditExportProjectionDeclaration}), per tenant and per\n * agreement, which is what a customer actually negotiates.\n *\n * The event-type half is built first and is not optional, because a destination cannot narrow a set\n * nobody has enumerated: shipping only the destination half would mean the first tenant to\n * configure one is choosing from an undeclared surface.\n *\n * ## The floor cannot be trimmed, and that is structural rather than advisory\n *\n * {@link AuditExportDisclosureTier.FLOOR} fields survive whatever a destination declares —\n * {@link resolveDisclosedEnvelopeFields} unions them in unconditionally, so a declaration of `[]`\n * still yields a correlatable event. Three independent reasons, and only the first is about\n * privacy:\n *\n * 1. **`eventId` IS the receiver's dedup key** in every wire format (CEF `externalId`, LEEF\n * `eventId`, OCSF `metadata.uid`, `json_structured`'s top-level `eventId`), and the DLQ drain\n * re-sends a stored envelope. Minimise past it and the feed stops being idempotent against a\n * service that retries — a \"minimised\" export nobody can correlate is not a privacy win, it is\n * an unusable feed that still left the building.\n * 2. **`eventType`, `severity` and `sourceVersion` are CEF/LEEF HEADER slots.** A header field\n * cannot be omitted without shifting every field after it, so trimming one does not minimise a\n * record — it corrupts it.\n * 3. **The remaining floor members are the record's own identity** — when, in which tenant, by\n * which actor reference, with what outcome. A row that cannot say those things is not a\n * shorter audit event; it is not an audit event.\n *\n * `sourceEnvironment` is FLOOR and is the one member worth justifying, because it is neither an\n * identity nor a header slot: it names the deployment environment (`production`), it is not data\n * about any person, it is REQUIRED on the envelope type, and the CEF contract records it as the\n * cheapest triage filter a SOC has. Trimming it would cost a receiver real capability and protect\n * nobody.\n *\n * ## Applied ONCE, at the ENQUEUE SEAM — which is what makes every format consistent\n *\n * The projection is applied inside `AuditEventDispatcherBackendService.enqueueSiemWebhookDelivery`,\n * before the F6 HMAC and before the job is enqueued. So the minimised envelope is the ONLY envelope\n * that exists downstream: it is what is signed, what is queued, what a DLQ row stores, and what a\n * drain replays.\n *\n * **The seam rather than the call site, and the difference is not stylistic.** It landed at the\n * dispatch call site first, which left that public method able to enqueue an un-minimised envelope\n * for any producer that found it — the one-of-N shape `invariant-call-site-enumeration.md` exists\n * for, and live rather than hypothetical, since the batching lane is extending that very seam. The\n * seam already owned the other two elements of the delivery contract (the HMAC and the batch ref);\n * the projection is the third.\n *\n * Moving it also FIXED the dead-letter retry, which the call-site version could not: a drain\n * re-enqueues stored bytes with a freshly loaded configuration, so a tenant that narrows its\n * projection on discovering over-disclosure now has that narrowing reach rows already\n * dead-lettered. Re-application is safe both ways, because the projection only ever DELETES.\n *\n * Four consequences, each of which would have been a separate defect had the projection been\n * applied per-format instead:\n *\n * - **All four wire formats carry it identically, for free.** Every CEF/LEEF render already guards\n * `e.x ? c.pair(...) : undefined` (for the DLQ-replay reason), and every OCSF assignment does the\n * same — so a trimmed field emits NO key rather than an empty one. That distinction is not\n * cosmetic in CEF: a `csN` slot is emitted as a `csNLabel`/`csN` PAIR, and an empty `cs4=` with\n * its label still present would tell a receiver the field exists and is blank. Absent is absent.\n * - **The DLQ stores less.** A dead-lettered delivery holds only what the destination was allowed\n * to receive, so a queue outage does not park un-minimised personal data.\n * - **A retry cannot drift from the attempt it continues** — the same property the single enqueue\n * seam already guards.\n * - **The HMAC covers the bytes that actually leave.**\n *\n * @see `.claude/context/audit-trails.md` — the SIEM wire-format projections this rides on top of.\n */\n\nimport { z } from 'zod';\n// Side-effect import: this module calls `.systemEnum()` at load, so the decorators must be\n// installed first — never by the importer's luck (#966). A named import used only as a type would\n// be elided and install nothing.\nimport '@wildo-ai/zod-decorators';\n\nimport { CoreAuditableEventType } from './auditable-events.shared.schema';\nimport type { SecurityAuditEventEnvelope } from './security-audit-event-envelope.shared.schema';\n\n/**\n * What KIND of thing an envelope field is, for the purpose of deciding whether a destination may\n * receive it.\n *\n * Deliberately a SMALL closed vocabulary rather than per-field switches on the destination. A DPA\n * is negotiated in these terms — *\"we will not send you identifiers of our users\"* — and a tenant\n * choosing from 27 field names would be choosing from an implementation detail that moves. The tiers\n * are the stable surface; the field-to-tier assignment is the framework's judgement and is\n * compile-enforced to be total.\n */\nexport enum AuditExportDisclosureTier {\n /**\n * Never trimmable, whatever a destination declares. The record's identity, its outcome, its\n * actor reference, and the header slots the text grammars structurally require. See this module's\n * header for the three independent reasons.\n */\n FLOOR = 'floor',\n /**\n * Who the person is and where they were — the personal-data surface of the envelope. The tier a\n * tenant exporting to a processor in another jurisdiction most often wants dropped.\n */\n ATTRIBUTION = 'attribution',\n /**\n * Operational context that is not about a person: which request, which surface, which tenant\n * label, which authentication mechanism, which identity source.\n *\n * Note what is NOT here: `outcomeReason`. It reads like context and is DETAIL, because it is\n * lifted out of the event's own bag — see that tier's note.\n */\n CONTEXT = 'context',\n /**\n * Content that CAME FROM the per-event `eventData` bag — the bag itself, and any envelope field\n * the dispatcher lifted out of it. Disclosure is decided a second time by the event type's own\n * {@link AuditExportEventDataDisclosure}.\n *\n * **\"Came from the bag\" rather than \"is the bag\", and the difference was a real hole.** The\n * dispatcher PROMOTES values onto the envelope — `outcomeReason` is\n * `eventData.failureReason || eventData.reason` — so a promoted field classified by what it looks\n * like (a short reason string, plausibly CONTEXT) outlives the bag it was copied from.\n *\n * **The population is defined by those two keys, because they are the only ones the dispatcher\n * reads.** Measured over the core vocabulary: **27** event schemas declare a top-level\n * `failureReason` or `reason` and can therefore put text into `outcomeReason`, and **19** of them\n * carry the operator-typed `reason` — including every organization-lifecycle event whose\n * `SUBJECT_DETAIL` classification rests on precisely that free text. A destination that withheld\n * those bags was still receiving their prose.\n *\n * An earlier note said \"22 … `reason` or `justification`\", which is a real count of a population\n * this field does not have: `justification` is never read here, so three of those 22 could not\n * reach `outcomeReason` at all while eight schemas that can (`failureReason` only) were left out.\n * Both numbers were arithmetically right and the denominator was chosen rather than derived —\n * `derive-before-you-ask.md` Shape 2, inside the very rationale written to fix a leak.\n *\n * The operative rule is the general one: **a field's declared tier must be TRUE of every value it\n * can carry.** `userEmail` is promoted from the bag too and is ATTRIBUTION, because every value it\n * can hold is an address — the tier is true of all of them. `outcomeReason` is DETAIL because the\n * tier CONTEXT was not true of the free-text values it can hold, and nothing narrower than the\n * bag's own class can separate those from the enum-ish ones.\n *\n * So the practical test when adding a promoted field is not \"where did it come from\" alone — it\n * is \"can this field carry something its tier would be a lie about?\". Where the answer is yes and\n * the value comes from the bag, DETAIL is the only tier that can gate it honestly.\n */\n DETAIL = 'detail',\n}\n\n/**\n * What an event type's `eventData` bag CONTAINS — the event-type half of the contract.\n *\n * The question this answers is narrow on purpose: *does the bag carry content about a person,\n * beyond the actor reference the envelope already carries?* It is asked of the EVENT TYPE because\n * that is the only place it can be answered once — the bag is an open record whose shape is decided\n * by the emitter, so no property of the envelope can decide it.\n *\n * Only TWO members, and the binary is the point: a third \"it depends\" member would be a place to\n * put the entries nobody wanted to judge, and every entry that landed there would be read as safe.\n */\nexport enum AuditExportEventDataDisclosure {\n /**\n * The bag carries data ABOUT a person — an email address, an IP, a name, a value they supplied,\n * or free text somebody wrote which may name anyone.\n *\n * **This is the fail-closed answer and the default for anything not verified.** An event wrongly\n * marked here costs a minimising tenant a bag they could have had; an event wrongly marked\n * {@link ADMINISTRATIVE} discloses personal data to a destination that asked not to receive it.\n * The two errors are not symmetric, so the doubt resolves here.\n */\n SUBJECT_DETAIL = 'subject-detail',\n /**\n * The bag describes CONFIGURATION or SYSTEM STATE. Any identifier in it is an actor or resource\n * reference the envelope already implies, and it carries no contact data, no supplied values and\n * no free text.\n *\n * Mark an event here only after READING its `eventData` schema. The set is deliberately small;\n * growing it is a per-event decision with the schema in front of you, not a sweep.\n */\n ADMINISTRATIVE = 'administrative',\n}\n\n/**\n * Every field of the envelope, assigned a disclosure tier.\n *\n * **Total over `Required<SecurityAuditEventEnvelope>` with `-?`**, the same construction the CEF and\n * LEEF projection contracts use and for the same reason: a field added to the envelope is a COMPILE\n * ERROR here until someone decides what it is. The alternative — a hand-kept list of sensitive\n * fields — has no way to say what it left out, and what it leaves out is disclosed.\n *\n * Declared as a mapped TYPE rather than a `Record<string, …>` so the keys cannot drift from the\n * envelope, and `as const satisfies` so the assignments keep their literal types for\n * {@link AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE} below.\n */\nexport type AuditExportFieldDisclosureContract = {\n readonly [F in keyof Required<SecurityAuditEventEnvelope>]-?: AuditExportDisclosureTier;\n};\n\nexport const AUDIT_EXPORT_FIELD_DISCLOSURE = {\n // ── FLOOR ────────────────────────────────────────────────────────────────────────────────────\n /** The receiver's dedup key AND the only handle joining a SIEM record back to its audit row. */\n eventId: AuditExportDisclosureTier.FLOOR,\n /** CEF `Device Event Class ID` + `Name`, LEEF `EventID` — header slots in both text grammars. */\n eventType: AuditExportDisclosureTier.FLOOR,\n /** What the record IS. A receiver's own category filter is written against it. */\n eventCategory: AuditExportDisclosureTier.FLOOR,\n /** CEF's mandatory `agentSeverity` header slot, and what a SOC alerts on. */\n severity: AuditExportDisclosureTier.FLOOR,\n /** When. An audit event without a time is not a shorter audit event. */\n timestamp: AuditExportDisclosureTier.FLOOR,\n /** Which tenant. Also the scope the feed is routed on, so a record denying it is unreadable. */\n organizationId: AuditExportDisclosureTier.FLOOR,\n /**\n * The ACTOR REFERENCE — an opaque id, never a name or an address. Deliberately FLOOR while\n * `userEmail` is ATTRIBUTION: an id lets a receiver correlate one actor's events without learning\n * who they are, which is exactly the trade a minimising tenant is trying to make. Dropping it\n * would leave a feed in which nothing can be attributed to anything.\n */\n userId: AuditExportDisclosureTier.FLOOR,\n /** Which application emitted it. Required on the envelope and names no person. */\n sourceService: AuditExportDisclosureTier.FLOOR,\n /** CEF `Device Version`, LEEF `Product Version` — header slots in both text grammars. */\n sourceVersion: AuditExportDisclosureTier.FLOOR,\n /** See the module header: required, impersonal, and the cheapest triage filter a SOC has. */\n sourceEnvironment: AuditExportDisclosureTier.FLOOR,\n /** Success or failure. Half of what an audit record is for. */\n outcome: AuditExportDisclosureTier.FLOOR,\n /**\n * The KIND of principal whose authority was used — a vocabulary value, never an identity. FLOOR\n * beside `userId` because without it a minimised feed cannot tell a person from a delegated client,\n * a machine or the application itself, which is the first question asked of any privileged action.\n */\n actorKind: AuditExportDisclosureTier.FLOOR,\n\n // ── ATTRIBUTION ──────────────────────────────────────────────────────────────────────────────\n /** A person's address. The single field most DPAs name first. */\n userEmail: AuditExportDisclosureTier.ATTRIBUTION,\n /** Personal data in its own right, and the field that places a person geographically. */\n ipAddress: AuditExportDisclosureTier.ATTRIBUTION,\n /** Device and software fingerprint of a person's client. */\n userAgent: AuditExportDisclosureTier.ATTRIBUTION,\n /** Where a person was. */\n geoLocation: AuditExportDisclosureTier.ATTRIBUTION,\n /**\n * A pseudonymous identifier under GDPR Art. 4(5) by its own schema declaration, and the axis that\n * groups one person ACROSS sessions and logins — which is precisely what makes it more disclosing\n * than a per-request id, not less.\n */\n clientInstanceId: AuditExportDisclosureTier.ATTRIBUTION,\n\n // ── CONTEXT ──────────────────────────────────────────────────────────────────────────────────\n /** Groups the events of one request. About the request, not the person who made it. */\n correlationId: AuditExportDisclosureTier.CONTEXT,\n /** Which frontend surface (app / website / docs). */\n frontendServiceName: AuditExportDisclosureTier.CONTEXT,\n /** A tenant LABEL. A legal person is not a data subject, but it is still the tenant's to withhold. */\n organizationName: AuditExportDisclosureTier.CONTEXT,\n applicationId: AuditExportDisclosureTier.CONTEXT,\n applicationName: AuditExportDisclosureTier.CONTEXT,\n /** How the principal authenticated. A mechanism, not an identity. */\n authMethod: AuditExportDisclosureTier.CONTEXT,\n /** Which identity source. A configuration reference. */\n authSource: AuditExportDisclosureTier.CONTEXT,\n providerRef: AuditExportDisclosureTier.CONTEXT,\n /** The connection a stored provider credential belongs to (#1670). A configuration reference, like the ref. */\n connectionRef: AuditExportDisclosureTier.CONTEXT,\n connectionType: AuditExportDisclosureTier.CONTEXT,\n /**\n * The AI agent that acted — a configuration identifier, beside `authSource` rather than beside the\n * personal-data fields. A tenant minimising for personal data must still be able to say which agent\n * did what, so this is deliberately NOT ATTRIBUTION.\n */\n agentRef: AuditExportDisclosureTier.CONTEXT,\n /**\n * The agent's execution — a pseudonymous key into a transcript the user owns, which resolves to\n * nothing once that transcript is erased. It names a run, not a person, so it travels with the\n * agent's identity rather than with the personal-data tier.\n */\n agentExecutionId: AuditExportDisclosureTier.CONTEXT,\n /** The external OAuth client a person delegated to. A software client's id, not a person's. */\n delegatingClientId: AuditExportDisclosureTier.CONTEXT,\n /**\n * #1597 — the relationship a firm's principal acted through, and the firm. Organization and relationship\n * identifiers, not a person's: CONTEXT, beside the other \"under what arrangement did this act?\" fields.\n */\n actingViaServiceProviderRelationshipId: AuditExportDisclosureTier.CONTEXT,\n providerOrganizationId: AuditExportDisclosureTier.CONTEXT,\n /**\n * #1633 — where the factor that satisfied the client's authentication policy came from. An enum naming a SOURCE\n * (this application, or the firm's trusted identity provider), never a person or a proof: CONTEXT beside the\n * relationship it qualifies.\n */\n serviceProviderFactorSource: AuditExportDisclosureTier.CONTEXT,\n\n // ── DETAIL ───────────────────────────────────────────────────────────────────────────────────\n /** The open per-event bag. Gated a second time by the event type's own disclosure class. */\n eventData: AuditExportDisclosureTier.DETAIL,\n /**\n * DETAIL, not CONTEXT, because it is not a field of its own — it is a value the dispatcher LIFTED\n * OUT of the bag (`eventData.failureReason || eventData.reason`), so it travels with the bag it\n * came from. The operator is `||` rather than `??`, which is not pedantry here: an EMPTY\n * `failureReason` falls through to `reason`, so an event can reach the free-text branch even when\n * it declares the enum-ish one.\n *\n * It was CONTEXT, classified by its shape: usually an enum-ish failure reason, which reads as\n * impersonal operational context. That was wrong in the direction that matters. **27** core event\n * schemas declare a top-level `failureReason` or `reason` — the two keys the dispatcher reads, so\n * that is the population — and **19** of them carry the operator-typed `reason`: the organization\n * lifecycle events, `EMERGENCY_ACCESS_USED`, `RETAINED_DATA_ACCESS` (whose `reason` is required\n * and is the #954 operator justification), `USER_PASSWORD_RESET_FORCED`,\n * `RESOURCE_OPERATION_PERFORMED`. The organization-lifecycle entries in the event-data map below\n * give that free text as the WHOLE reason their bags are `SUBJECT_DETAIL`. So the contract\n * refused those bags and then handed their prose over anyway, through a field labelled context.\n *\n * The cost of the correction is real and is the right way round: a tenant that withholds detail\n * now also loses the ordinary enum-shaped failure reason on, say, `USER_LOGIN_FAILED`. It can get\n * it back by admitting `DETAIL` with `ADMINISTRATIVE` bags, and a reason it cannot have is one\n * that may name somebody.\n */\n outcomeReason: AuditExportDisclosureTier.DETAIL,\n} as const satisfies AuditExportFieldDisclosureContract;\n\n/** One envelope field name, as the disclosure contract names it. */\nexport type AuditExportEnvelopeField = keyof typeof AUDIT_EXPORT_FIELD_DISCLOSURE;\n\n/** Envelope fields this contract permits a destination to trim. */\ntype TrimmableEnvelopeField = {\n [F in AuditExportEnvelopeField]: (typeof AUDIT_EXPORT_FIELD_DISCLOSURE)[F] extends AuditExportDisclosureTier.FLOOR\n ? never\n : F;\n}[AuditExportEnvelopeField];\n\n/**\n * Envelope fields the TYPE declares OPTIONAL — the ones `delete` can honestly remove.\n *\n * ## `{} extends Pick<T, F>` is the optionality test, and `undefined extends T[F]` is NOT\n *\n * **This package compiles with `strict: false`, so `strictNullChecks` is OFF, and under that\n * setting `undefined` is assignable to every type.** `undefined extends string` is therefore TRUE\n * here, every field maps to `never`, the intersection below is empty for every input, and a guard\n * built on it reports success no matter what anyone classifies. That is not a subtlety of the\n * formulation — it is the whole test collapsing.\n *\n * This guard shipped in exactly that state and was caught by mutating it: with `sourceEnvironment`\n * deliberately mis-declared as trimmable, the `undefined extends` version typechecked clean.\n *\n * **Two plausible culprits were proposed for it and BOTH were wrong**, which is why the real cause\n * is spelled out rather than summarised. It is not `-?` \"stripping `undefined` from the property\n * type\", and it is not indexing through `Required<E>` — measured against this very envelope type,\n * the `-?` form, the `Required<E>` form and a bare form are ALL `never`, because the `undefined\n * extends` test cannot discriminate under this tsconfig regardless of how it is spelled.\n *\n * `Pick` survives because it tests the optional MODIFIER, which exists in the type's syntax and is\n * unaffected by `strictNullChecks`. The outer `-?` is doing an unrelated job: it stops the indexed\n * access from adding `undefined` to the result union.\n *\n * **Generalise it: in any package here without `strictNullChecks`, a type-level test of the shape\n * `undefined extends X` is vacuously true and silently useless.** Most engine packages are in that\n * state. Reach for a modifier-based test, and mutate the guard before believing it.\n */\ntype OmittableEnvelopeField = {\n [F in keyof SecurityAuditEventEnvelope]-?: Record<never, never> extends Pick<SecurityAuditEventEnvelope, F>\n ? F\n : never;\n}[keyof SecurityAuditEventEnvelope];\n\n/** Envelope fields the TYPE requires — a value that cannot simply be deleted. */\ntype RequiredEnvelopeField = Exclude<keyof SecurityAuditEventEnvelope, OmittableEnvelopeField>;\n\n/**\n * Any field that is trimmable AND required — i.e. one {@link applyAuditExportProjection} could not\n * honestly remove. `eventData` is the one legitimate member of that intersection: it is required by\n * the envelope type and is emptied to `{}` rather than deleted, which every wire format already\n * reads as \"no detail\" (both text grammars omit the key for an empty bag, and OCSF omits `unmapped`).\n */\ntype TrimmableFieldThatCannotBeOmitted = Exclude<Extract<TrimmableEnvelopeField, RequiredEnvelopeField>, 'eventData'>;\n\n/**\n * COMPILE-TIME GUARD, not a runtime value — the constant is never read.\n *\n * It fails to typecheck, naming the offending field, if anyone classifies a REQUIRED envelope field\n * as trimmable. That is the one way this contract could promise a minimisation it cannot perform:\n * the applier would leave the field in place and a tenant would receive data it declared it would\n * not. The failure is silent at runtime and total at compile time, which is the right way round.\n *\n * If a new required field genuinely must be trimmable, make it optional on the envelope (every\n * wire-format render already guards for absence, for the DLQ-replay reason) rather than widening\n * this guard.\n */\nexport const AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE: [TrimmableFieldThatCannotBeOmitted] extends [never]\n ? true\n : TrimmableFieldThatCannotBeOmitted = true;\n\n/**\n * Every core auditable event's `eventData` disclosure class — the EVENT-TYPE half of the contract.\n *\n * **Total over `CoreAuditableEventType`**, so a member added to the vocabulary is a compile error\n * until its author answers the question. That totality is the whole reason this is a map rather\n * than a per-destination list: a destination enumerating event types is a hand-kept list against a\n * vocabulary that moves, and a newly-added event would silently export everything or nothing\n * depending on which way its default fell.\n *\n * **Unverified entries are {@link AuditExportEventDataDisclosure.SUBJECT_DETAIL}, deliberately.**\n * Only the events below carry `ADMINISTRATIVE`, and each was classified by READING its\n * `eventData` schema and confirming it holds configuration or counts and no free text. Everything\n * else takes the fail-closed answer — including events whose bag is very likely harmless — because\n * the cost of being wrong in that direction is a tenant losing detail it could have had, while the\n * other direction discloses personal data to a destination that asked not to receive it.\n *\n * An application's OWN event types are not in this map and resolve to `SUBJECT_DETAIL` through\n * {@link resolveEventDataDisclosure}, for the same reason.\n */\nexport const AUDIT_EXPORT_EVENT_DATA_DISCLOSURE: Record<CoreAuditableEventType, AuditExportEventDataDisclosure> = {\n // ── Authentication ───────────────────────────────────────────────────────────────────────────\n // Every bag here carries some combination of email, IP, user-agent and session id.\n [CoreAuditableEventType.USER_LOGIN]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_LOGOUT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_ACCOUNT_LOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_ENABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_DISABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SESSION_EXPIRED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SESSION_EVICTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_AUTH_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_AUTH_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MACHINE_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── User lifecycle ───────────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.USER_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_APP_ROLES_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n /**\n * VERIFIED ADMINISTRATIVE: counts, the conferring role names, and the statuses that count as\n * usable. The event is about the APPLICATION having no administrator; it names no person.\n */\n [CoreAuditableEventType.APPLICATION_SUPER_ADMIN_FLOOR_BREACHED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Its organization twin is NOT administrative: the bag carries `reducedMemberIds` and\n // `subjectUserId`, which is a list of people rather than the envelope's single actor reference.\n [CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization lifecycle ───────────────────────────────────────────────────────────────────\n // Read, and NOT administrative — but by THREE different routes, which an earlier version of this\n // comment flattened into one (\"every one of these bags carries an operator-typed `reason`\").\n // Measured, that was false for three of the nine, and a rationale that overstates its own\n // evidence is the invented-denominator shape `derive-before-you-ask.md` warns about — sitting,\n // here, inside the justification that a later fix leaned on.\n //\n // - MOST carry an operator-typed `reason` / `justification` / `suspensionReason`: free text that\n // may name anybody. `_DELETED`, `_DELETION_REQUESTED`, `_RESTORED`, `_ACTIVATED`,\n // `_TYPE_ASSIGNED`, `_SUSPENDED`, `RESOURCE_STATUS_TRANSITION_PERFORMED`.\n // - `ORGANIZATION_UPDATED` carries `changes: z.record(z.string(), z.any())` — an OPEN bag, which\n // cannot be asserted to hold no data about a person. Same argument that reclassified\n // `ORGANIZATION_SSO_CONFIGURATION_CHANGED` below.\n // - `ORGANIZATION_CREATED` carries only `name`, `slug` and `createdBy`, and is SUBJECT_DETAIL on\n // the fail-closed default alone — no free text, no open bag, simply not verified as safe. That\n // is the honest entry, and naming it as such is what stops the next reader assuming the whole\n // group was measured.\n [CoreAuditableEventType.ORGANIZATION_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_TYPE_ASSIGNED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_DELETION_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_RESTORED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_SUSPENDED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_ACTIVATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_STATUS_TRANSITION_PERFORMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization membership ──────────────────────────────────────────────────────────────────\n // Membership bags name the member, the inviter and the roles — people, throughout.\n [CoreAuditableEventType.ORGANIZATION_MEMBER_INVITED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_JOINED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_ROLE_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_STATUS_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_NOTIFICATIONS_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PREFERENCES_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROFILE_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── SSO authentication ───────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.USER_SSO_LOGIN]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SSO_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SSO_ENFORCEMENT_BLOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_TOKEN_REFRESHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Organization security configuration ──────────────────────────────────────────────────────\n /**\n * SUBJECT_DETAIL, and it was ADMINISTRATIVE for one review cycle on the stated grounds \"a config\n * diff, its change type and the provider ref. No free text.\" The diff is\n * `changes: z.record(z.string(), z.any())` — an UNBOUNDED OPEN BAG, which cannot be asserted to\n * hold no data about a person whatever it happens to contain today. The same source file names\n * that exact shape as the one an audit payload must not have.\n *\n * The reclassification costs nothing measurable and is worth reading as a warning: the event has\n * **no emitter anywhere in production source** (its emit method was removed in #591), so the\n * \"verification\" behind the original entry was a reading of a schema that nothing populates. An\n * open record is unverifiable by construction — fail closed and say so.\n */\n [CoreAuditableEventType.ORGANIZATION_SSO_CONFIGURATION_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n /**\n * VERIFIED ADMINISTRATIVE: the three SIEM-export change events carry the tenant, the actor\n * reference, the change type, the destination's DOMAIN (never the full URL, never the\n * credential), the configured format and the names of the changed fields. Configuration\n * throughout, and no free text.\n *\n * They are also the events a retired destination receives as its LAST event (#986), so a\n * minimising tenant keeping them is exactly the intended outcome.\n */\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_CONFIGURED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DISABLED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DESTINATION_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── Provider credentials and connections ─────────────────────────────────────────────────────\n // No payload here carries a credential VALUE — that is structural. But the user-scoped half names\n // a person's relationship with a named vendor, and the organization-scoped half carries the\n // account and scopes a principal authorized, so both are subject detail.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CONNECTION_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PROVIDER_CONNECTION_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Application security configuration ───────────────────────────────────────────────────────\n /**\n * VERIFIED ADMINISTRATIVE: the changed user types, a snapshot digest, and the before/after policy\n * blocks. Authored configuration with no human actor at all — the event is emitted at boot.\n */\n [CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Read: run ref, instants, outcome vocabulary and per-class counts. System state, no person, no free text.\n [CoreAuditableEventType.RETENTION_ENFORCEMENT_RECORDED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── Outbound webhook ─────────────────────────────────────────────────────────────────────────\n /**\n * VERIFIED ADMINISTRATIVE: the dispatching actor reference, the endpoint id, the destination\n * HOST, the outcome and a duration. An operator-supplied URL is configuration, not a person.\n */\n [CoreAuditableEventType.WEBHOOK_ENDPOINT_TEST_DISPATCHED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Inbound deliveries (#1596): schemas read — ids, source keys, handler refs and classified codes, never\n // the payload, a header value or an error message. REPLAYED carries the operator's free-text\n // justification, so it keeps the fail-closed tier.\n [CoreAuditableEventType.INBOUND_DELIVERY_REJECTED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_ACCEPTED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_UNROUTABLE]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_PROCESSED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_FAILED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_DEAD]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_DELIVERY_REPLAYED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1630: ids, channels and named outcomes only — schemas read; no address, subject or free text.\n [CoreAuditableEventType.INBOUND_DELIVERY_BELOW_ASSURANCE]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_REPLY_SENT]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_REPLY_FAILED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_REPLY_TOKEN_REVOKED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_REPLY_TOKEN_DOWNGRADED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // #1600: schemas read. A domain and a client mailbox address are an ORGANIZATION's configuration, never a\n // person's; a received message is named by its row id, a classified reason and counts — no sender, subject\n // or filename.\n [CoreAuditableEventType.ORGANIZATION_EMAIL_DOMAIN_CLAIMED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_EMAIL_DOMAIN_OWNERSHIP_VERIFIED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_EMAIL_DOMAIN_VERIFIED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_EMAIL_DOMAIN_SUSPENDED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.ORGANIZATION_EMAIL_DOMAIN_REMOVED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.CLIENT_MAILBOX_CREATED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.CLIENT_MAILBOX_REMOVED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_EMAIL_ATTACHMENT_WITHHELD]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.INBOUND_EMAIL_REJECTED_LIMIT]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n\n // ── SCIM directory provisioning ──────────────────────────────────────────────────────────────\n // Provisioning is ABOUT people by definition; the token events ride the same lane and are not\n // separately verified.\n [CoreAuditableEventType.SCIM_TOKEN_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_GENERATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_TOKEN_ROTATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_PROVISIONING_CONFIG_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_PROVISIONING_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_PROVISIONED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_UPDATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SCIM_USER_DEACTIVATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Credential and factor lifecycle ──────────────────────────────────────────────────────────\n // Every bag names the person whose credential or factor moved.\n [CoreAuditableEventType.USER_PASSWORD_RESET_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_RESET_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_RESET_FORCED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_EMAIL_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_VERIFICATION_EMAIL_RESENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSWORD_SET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_TOTP_DISABLED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_IDENTITY_LINK_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_SETUP_STARTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_SETUP_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MFA_EMAIL_OTP_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_FAILURE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_REMOVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PASSKEY_CLONE_SUSPECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_MAGIC_LINK_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_SENT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_SMS_OTP_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PHONE_VERIFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_PHONE_VERIFICATION_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── SAML ─────────────────────────────────────────────────────────────────────────────────────\n // None of these has a typed eventData schema, so nothing can be verified about their bags. The\n // two that LOOK administrative (`SAML_CERT_EXPIRING`, `SAML_METADATA_PARSED`) are exactly the\n // entries a guess would get wrong, and are fail-closed with the rest.\n [CoreAuditableEventType.SAML_LOGIN_INITIATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_LOGIN_SUCCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_LOGIN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_ASSERTION_REPLAY_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_CERT_EXPIRING]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_SLO_INITIATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_SLO_COMPLETED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_METADATA_PARSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SAML_EMAIL_CHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── OAuth / OIDC provider ────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.OAUTH2_PROVIDER_BLOCKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_DELEGATED_TOKEN_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANT_PERSISTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_DYNAMIC_CLIENT_REGISTERED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CIMD_CLIENT_REFUSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_TOKEN_REFRESHED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_RP_INITIATED_LOGOUT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CODE_EXCHANGE_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.OAUTH_CONSENT_BINDING_VIOLATION]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Files and one-off tokens ─────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REDEEMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_SHARE_LINK_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_SHARE_LINKS_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_MALWARE_DETECTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FILE_MALWARE_SCAN_FAILED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_CREATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_EXCHANGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.ONE_OFF_TOKEN_REVOKED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.USER_CROSS_FRONTEND_HANDOFF_ISSUED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── Access, disclosure and administrative reach ──────────────────────────────────────────────\n // The generic resource and field events carry whatever the operation touched, including\n // before/after values of `.isAuditEvidence()` fields — the broadest bags in the vocabulary.\n [CoreAuditableEventType.EMERGENCY_ACCESS_USED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.FIELD_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_OPERATION_PERFORMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RESOURCE_OPERATION_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PLATFORM_ACCESS_GRANT_LIFECYCLE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // Names the held person (`subjectUserId`) on a data-subject hold (#1634).\n [CoreAuditableEventType.LEGAL_HOLD_PLACED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.LEGAL_HOLD_RELEASED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // Read with the schema in front of it (#1598): an aggregate id, the tenant, a month, a currency code and an\n // invoice-ref id — configuration of a billing record, no person, no free text, no amount.\n [CoreAuditableEventType.MODEL_COST_AGGREGATE_INVOICE_LINKED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.CORRECTION_CAPTURE_SETTING_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.EVALUATION_EXPORT_AUTHORIZATION_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.EVALUATION_DATASET_EXPORTED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.EVALUATION_DATASET_EXPORT_REFUSED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // The lifecycle carries `purpose` and `decisionReason` (free text people typed); the assignment events\n // name the expert, who is the SUBJECT rather than the actor. Both fail closed (#1597).\n [CoreAuditableEventType.SERVICE_PROVIDER_RELATIONSHIP_LIFECYCLE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_ASSIGNED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_UNASSIGNED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // The per-expert approval events (#1612) name the expert — the SUBJECT, not the actor — like the assignment events.\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_APPROVAL_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_APPROVAL_GRANTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_APPROVAL_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_EXPERT_APPROVAL_LAPSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // Read before marking (#1631): organization ids, a relationship and grant id, a capability, a date and the acting\n // client user — resource and actor references the envelope already implies; no contact data, no free text.\n [CoreAuditableEventType.SERVICE_PROVIDER_CAPABILITY_GRANTED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.SERVICE_PROVIDER_CAPABILITY_REVOKED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Read before marking: organization ids, a relationship id, an OAuth client id and the acting user —\n // resource and actor references the envelope already implies; no contact data, no free text.\n [CoreAuditableEventType.SERVICE_PROVIDER_MACHINE_CLIENT_ADMISSION_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n // Read before marking (#1633, #1632): organization ids, a relationship id, enum values, a boolean and the acting user —\n // no contact data and no free text. The satisfied-factor row names the expert as the subject of the proof, so it\n // fails closed like the assignment events.\n [CoreAuditableEventType.SERVICE_PROVIDER_MFA_TRUST_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.SERVICE_PROVIDER_CLIENT_AUTHENTICATION_SATISFIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SERVICE_PROVIDER_ACTIVITY_FEED_DECIDED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.SERVICE_PROVIDER_ACTIVITY_FEED_DISCLOSURE_CHANGED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SYSTEM_CONTEXT_READ]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SYSTEM_CONTEXT_WRITE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PLATFORM_CONFIGURATION_PUBLICATION]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.RETAINED_DATA_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.GOVERNED_DOCUMENT_INTERACTION_RECORDED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SUBJECT_DATA_EXPORT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.COLLECTION_DATA_EXPORT]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n\n // ── External integration ─────────────────────────────────────────────────────────────────────\n [CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HTTP_API_WRITE_THROUGH]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // Both name the initiating user and the organization; the executed row names a remote record key (#1678).\n [CoreAuditableEventType.SYSTEM_OF_RECORD_ACTION_EXECUTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.SYSTEM_OF_RECORD_ACTION_REFUSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1734 — `reason` and `statedOperator` are an operator's free text, which may name anyone.\n [CoreAuditableEventType.EXTERNAL_DATA_PIPELINE_RESET]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #2039 — `reason` and `statedOperator` are an operator's free text, as on the reset.\n [CoreAuditableEventType.EXTERNAL_DATA_OUTBOUND_UNKNOWN_RESOLVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1723 — a remote record's key and the row it links to identify a record that may be a person's.\n [CoreAuditableEventType.EXTERNAL_DATA_CONFLICT_RESOLVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // Names the erased subject's ids beside the recipient: the same exposure as the acknowledged-hole row above.\n [CoreAuditableEventType.SUBJECT_ERASURE_RECIPIENT_OUTCOME]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PROVIDER_OPERATION_CALL]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.PROVIDER_OPERATION_DENIED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.MCP_TOOL_CALL]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // SUBJECT_DETAIL like its two siblings, for their reason: `connectionOwnerId` names whose account the call spent, and\n // for a file read through a person's Drive that is the LINKER — a person the envelope does not imply when someone\n // else read the file (#1712 review). It names no recipient, number, file, customer or payload (#412), but ADMINISTRATIVE\n // admits only ids the envelope already implies, and a wrong ADMINISTRATIVE mark is the harmful direction.\n [CoreAuditableEventType.PROVIDER_CAPABILITY_CALL]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1594: decision rows name the requester, the decider and the people a decision moved between, so\n // they are subject detail. They carry no argument values, which is what keeps them exportable at all.\n [CoreAuditableEventType.HUMAN_DECISION_REQUESTED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_RESOLVED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_REASSIGNED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_ESCALATED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_CLAIMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_ANSWER_REFUSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1628 — ids, stages, counts and a pause-state identifier, the same weight as the rest of the family.\n [CoreAuditableEventType.HUMAN_DECISION_DEADLINE_MISSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_ESCALATION_FIRED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_CLOCK_PAUSED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n [CoreAuditableEventType.HUMAN_DECISION_CLOCK_RESUMED]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n // #1611 — read against the four schemas: agent refs, organization / client / relationship ids, an\n // occurrence id, a case reference (resource type and id), enum reasons. No contact data, no supplied\n // values, no free text: the turn's input and the agent's instruction are never in the bag.\n [CoreAuditableEventType.AUTONOMOUS_AGENT_BOUND]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.AUTONOMOUS_AGENT_UNBOUND]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.AUTONOMOUS_AGENT_TURN_STARTED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n [CoreAuditableEventType.AUTONOMOUS_AGENT_TURN_REFUSED]: AuditExportEventDataDisclosure.ADMINISTRATIVE,\n /*\n * Everything else in this bag IS configuration — the transition, the assignment row, the declared\n * instance, the remote partition key, and the units on either side of the move. On those alone it\n * would be ADMINISTRATIVE.\n *\n * `justification` decides it. The operator's stated reason is FREE TEXT a person wrote, recorded on\n * every transition, and free text may name anyone — which is this vocabulary's own criterion for\n * SUBJECT_DETAIL rather than a cautious reading of it. `assignedByUserId` is only the actor the\n * envelope already implies and would not have been enough on its own.\n */\n [CoreAuditableEventType.SYSTEM_OF_RECORD_PARTITION_ASSIGNMENT_LIFECYCLE]: AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n};\n\n/**\n * What one DESTINATION has declared it may receive — the per-tenant, per-agreement half.\n *\n * Two arrays rather than one, and the interaction between them is the reason. A tenant that drops\n * {@link AuditExportDisclosureTier.ATTRIBUTION} while keeping the detail bag would still receive\n * the email address inside `eventData` for every authentication event — a minimisation that reads\n * as a control and is not one. {@link disclosedEventDataClasses} is what closes that: declaring\n * `[ADMINISTRATIVE]` keeps the bags that carry configuration and drops the ones that carry people.\n */\n/*\n * Both members declare `.systemEnum(...)` ON THE ELEMENT, which is where the decorator goes for an\n * array of enums (`organizationPreferences.supportedLanguages` is the precedent).\n *\n * Without it these two vocabularies would get words authored per FIELD PATH rather than once per\n * enum, and a reader of the SIEM pane would be choosing between raw wire values like\n * `subject-detail` — see `.claude/rules/display-text-comes-from-i18n.md`. A new closed vocabulary\n * reaching a UI is exactly the moment to declare it; the words themselves are authored by the\n * labelling pipeline under `system_enums.<Name>.<value>` and are never hand-written here.\n */\nexport const SiemExportProjectionDeclarationSchema = z.object({\n /**\n * Which tiers, beyond the floor, this destination may receive.\n *\n * **`FLOOR` is not a choice, so it is not offered.** The floor is added unconditionally by\n * {@link resolveDisclosedEnvelopeFields}, and declaring `[]` yields a floor-only feed rather than\n * an empty one.\n *\n * This used to accept the whole vocabulary, on the reasoning that declaring `FLOOR` was\n * \"redundant rather than wrong\". That was true of the API and false of the SCREEN: the settings\n * pane renders one checkbox per member, so it offered a `floor` toggle — and on every destination\n * that had not ticked it, displayed it UNCHECKED. An operator reading \"floor ☐\" believes the event\n * id, type, timestamp and user id are withheld, and none of them is. That is the exact shape this\n * contract exists to remove — a control that renders and does nothing — and it was found by\n * opening the pane in a browser, not by any test (#1395).\n *\n * Derived from the one named vocabulary with `.exclude(['FLOOR'])` rather than declared as a\n * second enum: the tiers a destination may choose are a SUBSET of the tiers a field may have, and\n * a parallel list would be a second copy to keep in step. The key is type-checked against the\n * enum, so renaming the member is a compile error here rather than a silent drift.\n *\n * Defaults to everything: a destination that has declared no minimisation has not asked for one,\n * and silently narrowing an existing tenant's feed would be a worse failure than not narrowing a\n * new one.\n */\n disclosedTiers: z.array(z.enum(AuditExportDisclosureTier).exclude(['FLOOR']).systemEnum('AuditExportDisclosureTier')).default([\n AuditExportDisclosureTier.ATTRIBUTION,\n AuditExportDisclosureTier.CONTEXT,\n AuditExportDisclosureTier.DETAIL,\n ]).describe(\"The envelope tiers this destination receives beyond the floor. The floor (the record's identity, its outcome and its actor reference) is always sent, so an empty list sends the floor alone. Defaults to every tier.\"),\n /**\n * Which `eventData` bags this destination may receive, by the EVENT TYPE's declared class. Read\n * only when {@link AuditExportDisclosureTier.DETAIL} is disclosed; an event type outside the core\n * vocabulary resolves to `SUBJECT_DETAIL`.\n */\n disclosedEventDataClasses: z.array(z.enum(AuditExportEventDataDisclosure).systemEnum('AuditExportEventDataDisclosure')).default([\n AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n AuditExportEventDataDisclosure.ADMINISTRATIVE,\n ]).describe(\"Which classes of event detail this destination receives, judged by each event type's declared class. Read only when the detail tier is sent. Keeping only the administrative class drops detail that names people.\"),\n});\n\nexport type AuditExportProjectionDeclaration = z.infer<typeof SiemExportProjectionDeclarationSchema>;\n\n/**\n * The projection a destination that has declared nothing receives: everything.\n *\n * FAIL-OPEN, deliberately, and it is the one place in this contract where that is right. An absent\n * declaration is not a tenant asking for minimisation — it is a tenant that has not configured one,\n * and every existing destination is in that state. Failing closed here would silently stop\n * delivering fields to feeds that are working today, which is a bigger and quieter harm than\n * continuing the current behaviour until an operator narrows it deliberately.\n */\nexport const FULL_AUDIT_EXPORT_PROJECTION: AuditExportProjectionDeclaration = {\n disclosedTiers: [\n AuditExportDisclosureTier.ATTRIBUTION,\n AuditExportDisclosureTier.CONTEXT,\n AuditExportDisclosureTier.DETAIL,\n ],\n disclosedEventDataClasses: [\n AuditExportEventDataDisclosure.SUBJECT_DETAIL,\n AuditExportEventDataDisclosure.ADMINISTRATIVE,\n ],\n};\n\n/**\n * What an event type's `eventData` bag carries, including for event types an APPLICATION defined.\n *\n * An unknown type resolves to {@link AuditExportEventDataDisclosure.SUBJECT_DETAIL} — the opposite\n * direction from `getAuditEventClassification`, whose fallback exists to give an application event\n * a usable category. Here the fallback decides a DISCLOSURE, so it takes the safe answer: an\n * application's own bag is the one this framework knows least about.\n */\nexport function resolveEventDataDisclosure(eventType: string): AuditExportEventDataDisclosure {\n return (\n AUDIT_EXPORT_EVENT_DATA_DISCLOSURE[eventType as CoreAuditableEventType]\n ?? AuditExportEventDataDisclosure.SUBJECT_DETAIL\n );\n}\n\n/**\n * The envelope fields one destination may receive for one event.\n *\n * The floor is unioned in unconditionally — **this is where \"a floor cannot be trimmed\" is\n * enforced**, not in the applier and not in the schema's defaults, so no declaration a tenant can\n * write and no future caller can produce a feed without it.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — the destination's declaration decides which\n * envelope fields may leave for an external processor, and the floor is the part of that decision\n * the framework keeps: a record that cannot be correlated or de-duplicated is not a minimised\n * export.\n */\nexport function resolveDisclosedEnvelopeFields(\n eventType: string,\n declaration: AuditExportProjectionDeclaration,\n): ReadonlySet<AuditExportEnvelopeField> {\n const disclosedTiers = new Set(declaration.disclosedTiers);\n const eventDataAdmitted =\n disclosedTiers.has(AuditExportDisclosureTier.DETAIL)\n && declaration.disclosedEventDataClasses.includes(resolveEventDataDisclosure(eventType));\n\n const disclosed = new Set<AuditExportEnvelopeField>();\n for (const [field, tier] of Object.entries(AUDIT_EXPORT_FIELD_DISCLOSURE) as readonly [\n AuditExportEnvelopeField,\n AuditExportDisclosureTier,\n ][]) {\n if (tier === AuditExportDisclosureTier.FLOOR) {\n disclosed.add(field);\n continue;\n }\n if (tier === AuditExportDisclosureTier.DETAIL) {\n if (eventDataAdmitted) disclosed.add(field);\n continue;\n }\n if (disclosedTiers.has(tier)) disclosed.add(field);\n }\n return disclosed;\n}\n\n/**\n * Apply a destination's projection to an envelope, returning the envelope that may actually leave.\n *\n * Returns a NEW object — the caller fans one audit event out to several tenants' sinks, each with\n * its own declaration, so mutating in place would let the first destination's minimisation reach\n * the second's delivery.\n *\n * **Omitted is not empty**, which the CEF `csN` slots make more than a nicety: a trimmed optional\n * field is DELETED, so a render that guards `e.x ? … : undefined` emits neither the value nor its\n * `csNLabel` companion. `eventData` is the one exception — it is required by the envelope type, so\n * it is emptied to `{}`, which every format already reads as \"no detail\" (both text grammars omit\n * their detail key for an empty bag; OCSF omits `unmapped` for the same reason). The compile-time\n * guard {@link AUDIT_EXPORT_TRIMMABLE_FIELDS_ARE_OMITTABLE} is what keeps that exception the only\n * one.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — the act itself: only the fields the\n * destination's declaration admits survive into the envelope that is signed, queued and delivered\n * to a third-party processor of the tenant's choosing.\n */\nexport function applyAuditExportProjection(\n envelope: SecurityAuditEventEnvelope,\n declaration: AuditExportProjectionDeclaration,\n): SecurityAuditEventEnvelope {\n const disclosed = resolveDisclosedEnvelopeFields(envelope.eventType, declaration);\n const projected: SecurityAuditEventEnvelope = { ...envelope };\n\n for (const field of Object.keys(AUDIT_EXPORT_FIELD_DISCLOSURE) as readonly AuditExportEnvelopeField[]) {\n if (disclosed.has(field)) continue;\n if (field === 'eventData') {\n projected.eventData = {};\n continue;\n }\n // Every other trimmable field is optional on the envelope — see the compile-time guard above.\n delete (projected as Record<string, unknown>)[field];\n }\n\n return projected;\n}\n"]}
@@ -137,6 +137,13 @@ export interface AuditLogVerification {
137
137
  * `createdAt` of the last event confirmed synced); the store round-trips it verbatim.
138
138
  * The reconciler pairs this with an IDEMPOTENT `AuditLogSink.recordAuditEvent`
139
139
  * (write-if-absent) so replaying an already-synced event is a no-op.
140
+ *
141
+ * The mark belongs to ONE application. The reconciler reads it as the lower bound of THIS
142
+ * application's replay, so a store that several applications share (one immudb database per
143
+ * platform, #1696) must key it by the application the sink was built for — the immudb sink uses
144
+ * `__wildo_audit_reconcile_checkpoint__:<applicationId>`. A mark shared across applications lets one
145
+ * application's later progress become another's lower bound, and that application's missed rows are
146
+ * never backfilled while every run reports success (#1739).
140
147
  */
141
148
  export interface AuditReconcileCheckpointStore {
142
149
  /** The last persisted high-water mark, or `null` when the reconciler has never run (or the store is unreachable). */
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log-sink.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-log-sink.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,oBAAY,0BAA0B;IACpC,2EAA2E;IAC3E,QAAQ,aAAa;IACrB,0GAA0G;IAC1G,MAAM,WAAW;IACjB,oGAAoG;IACpG,QAAQ,aAAa;IACrB,yGAAyG;IACzG,YAAY,iBAAiB;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,MAAM,EAAE,0BAA0B,CAAC;IACnC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qHAAqH;IACrH,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,qFAAqF;IACrF,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"audit-log-sink.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-log-sink.shared.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,oBAAY,0BAA0B;IACpC,2EAA2E;IAC3E,QAAQ,aAAa;IACrB,0GAA0G;IAC1G,MAAM,WAAW;IACjB,oGAAoG;IACpG,QAAQ,aAAa;IACrB,yGAAyG;IACzG,YAAY,iBAAiB;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,MAAM,EAAE,0BAA0B,CAAC;IACnC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qHAAqH;IACrH,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,qFAAqF;IACrF,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log-sink.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-log-sink.shared.schemas.ts"],"names":[],"mappings":"AAoFA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,0BASX;AATD,WAAY,0BAA0B;IACpC,2EAA2E;IAC3E,mDAAqB,CAAA;IACrB,0GAA0G;IAC1G,+CAAiB,CAAA;IACjB,oGAAoG;IACpG,mDAAqB,CAAA;IACrB,yGAAyG;IACzG,2DAA6B,CAAA;AAC/B,CAAC,EATW,0BAA0B,KAA1B,0BAA0B,QASrC","sourcesContent":["import type { AuditableEvent } from './auditable-events.shared.schema';\n\n/**\n * A per-org target VERIFIED as trusted for the current user — an org id the flow confirmed the\n * authenticated user is a genuine ACTIVE member of (via `resolveActiveMemberOrgIds`), or that came\n * from a cryptographically-validated connection.\n *\n * This is the CANONICAL type for ANY per-user org used to ROUTE DATA to a tenant or to SCOPE a\n * resource read/query by tenant — not audit routing alone. Per-org audit dispatch already routes\n * ONLY on this brand; new data-routing / tenant-scoping surfaces should take `VerifiedOrgId` too, so\n * the untrusted email-domain→org guess (`session.organizationId` / `DomainOrgLookupResult.scopeId`)\n * can NEVER reach them without a deliberate, reviewable cast (routing the audit trail on that guess\n * was the 2026-07-09 cross-tenant leak).\n *\n * NOT for the SSO-ENFORCEMENT boundary: the domain-scoped SSO gates (e.g. `_checkSSOGraceLoginAllowed`)\n * legitimately key on the domain-ownership hint and must NOT be forced to take a membership org —\n * that is a different, fail-safe boundary by design.\n *\n * The brand is a COMPILE-TIME guard: a plain `string` / `string[]` cannot be passed where a\n * `VerifiedOrgId` is expected without a deliberate cast — which is the resolver's job\n * (`resolveActiveMemberOrgIds`), never a raw caller value.\n */\nexport type VerifiedOrgId = string & { readonly __brand: 'VerifiedOrgId' };\n\n/**\n * The event payload handed to an `AuditLogSink` — the persisted audit event\n * MINUS the DB primary key (`_id`), which is store-specific and not yet\n * assigned at fan-out time (the emit runs INDEPENDENTLY of, and possibly before,\n * the DB write completes). The store-agnostic `eventId` (see\n * `AuditableEvent.eventId`) IS present and is the stable cross-store correlation\n * key every sink should record — the same id the Phase-3 reconciler and\n * `AuditLogVerification.verifyAuditEvent` key on.\n *\n * A DEDICATED emission type (rather than the raw persisted `AuditableEvent`)\n * mirrors `AgentCallTraceEmission`: the write path never has a DB `_id` to give,\n * so the contract must not demand one — and sinks can gain fields here without a\n * signature change at every call site.\n */\nexport type AuditLogEventEmission = Omit<AuditableEvent, '_id'>;\n\n/**\n * `AuditLogSink` — a destination for compliance audit events (the FAN_OUT\n * side of `EngineCapability.COMPLIANCE_AUDIT_TRAIL`). One sink per provider\n * (immudb, a SIEM webhook, …); the engine's composite fans EVERY event out to\n * EVERY declared sink, layered on the always-on database audit store.\n *\n * The interface lives in `saas-models` so the engine + apps depend on the\n * contract without importing any provider SDK (the dependency-cycle break,\n * mirroring `AgentCallTraceSink`).\n *\n * DELIVERY CONTRACT — deliberately STRONGER than the best-effort, sampled,\n * droppable `AgentCallTraceSink`; mirror that sink's WIRING (lazy resolution,\n * DI, never-throw) but NOT its guarantees:\n * - **At-least-once + unsampled** — every event must reach every sink; no\n * sampling, no drop-on-load. A sink that forwards asynchronously owns its own\n * durable buffering + retry.\n * - **Immutable / append-only** — a sink never updates or deletes a recorded\n * event.\n * - **Non-blocking** — the engine calls sinks fire-and-forget; a sink failure\n * is isolated + observable, never thrown onto the business-op path.\n * Completeness vs the authoritative DB store is the provider's reconciliation\n * concern, not the caller's.\n */\nexport interface AuditLogSink {\n /**\n * Record one audit event to this destination, honoring the delivery contract\n * above. Resolves when the event is durably accepted by the sink's own\n * buffering — not necessarily when persisted at the far end.\n *\n * MUST NOT throw synchronously NOR return a rejecting promise — buffer-and-\n * return. The engine's composite isolates each sink, but that isolation is a\n * backstop, not a licence: a sink that rejects here still breaks the contract,\n * and any future direct (non-composite) caller would inherit an unhandled\n * rejection on the audit path.\n */\n recordAuditEvent(event: AuditLogEventEmission): void | Promise<void>;\n /**\n * Optional flush/cleanup, best-effort on host shutdown. A sink that batches\n * asynchronously MUST drain here so short-lived hosts (minion/worker) don't\n * lose queued events.\n */\n shutdown?(): void | Promise<void>;\n}\n\n/**\n * Outcome of an `AuditLogVerification.verifyAuditEvent` check.\n *\n * Distinguishes the two very different `verified: false` cases an external auditor must NOT\n * conflate — an event that was never recorded at the destination vs. one that WAS recorded but whose\n * cryptographic proof now fails (the actual tamper signal). The prior contract collapsed both into a\n * bare boolean + free-text `detail`, so a tampered entry was indistinguishable from a missing one.\n */\nexport enum AuditLogVerificationStatus {\n /** Present AND its cryptographic proof verified — genuinely untampered. */\n Verified = 'verified',\n /** Not present at the destination (never recorded, or the reconciler has not caught up). NOT a tamper. */\n Absent = 'absent',\n /** Present but the proof FAILED — the entry was altered since it was written. The tamper signal. */\n Tampered = 'tampered',\n /** Could not be determined (store unreachable / no proof obtainable) — neither confirmed nor refuted. */\n Unverifiable = 'unverifiable',\n}\n\n/**\n * Result of an `AuditLogVerification` proof check. `verified` is retained as the fast boolean\n * (`status === Verified`); `status` is the discriminator auditors branch on (absent vs tampered vs\n * unverifiable) — a tamper must never read the same as a not-yet-recorded event.\n */\nexport interface AuditLogVerificationResult {\n verified: boolean;\n /** Discriminated outcome — the authoritative field; `verified` is `status === Verified`. */\n status: AuditLogVerificationStatus;\n /** Technology-specific proof detail (e.g. immudb tx id + inclusion proof). */\n detail?: string;\n}\n\n/**\n * Optional, technology-aware verification a provider MAY expose when its store\n * supports cryptographic proofs (e.g. immudb inclusion/consistency proofs).\n *\n * Day-to-day the audit pipeline is WRITE-ONLY; verification is an\n * external-auditor concern, resolved separately from the write path. This\n * contract is reserved in Phase 1 and implemented for immudb in Phase 5 —\n * providers whose technology cannot prove non-tampering simply don't expose it.\n */\nexport interface AuditLogVerification {\n /**\n * Verify a previously-recorded event is present + untampered at the\n * destination, returning the technology's proof result.\n */\n verifyAuditEvent(eventId: string): Promise<AuditLogVerificationResult>;\n}\n\n/**\n * Optional capability a sink exposes when it can persist the completeness reconciler's\n * high-water mark IN ITS OWN store (e.g. immudb under a reserved key) — so the reconciler\n * needs no separate state resource and no `AUDIT_LOGS` schema change. A sink whose\n * technology can't hold a cursor (a fire-and-forget SIEM webhook) simply doesn't\n * implement it, and the reconciler falls back to a bounded windowed replay.\n *\n * The mark is an opaque, monotonic cursor the reconciler defines (today: the ISO\n * `createdAt` of the last event confirmed synced); the store round-trips it verbatim.\n * The reconciler pairs this with an IDEMPOTENT `AuditLogSink.recordAuditEvent`\n * (write-if-absent) so replaying an already-synced event is a no-op.\n */\nexport interface AuditReconcileCheckpointStore {\n /** The last persisted high-water mark, or `null` when the reconciler has never run (or the store is unreachable). */\n getAuditReconcileCheckpoint(): Promise<string | null>;\n /** Persist the high-water mark after a reconcile batch is confirmed in the store. */\n setAuditReconcileCheckpoint(mark: string): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"audit-log-sink.shared.schemas.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-log-sink.shared.schemas.ts"],"names":[],"mappings":"AAoFA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,0BASX;AATD,WAAY,0BAA0B;IACpC,2EAA2E;IAC3E,mDAAqB,CAAA;IACrB,0GAA0G;IAC1G,+CAAiB,CAAA;IACjB,oGAAoG;IACpG,mDAAqB,CAAA;IACrB,yGAAyG;IACzG,2DAA6B,CAAA;AAC/B,CAAC,EATW,0BAA0B,KAA1B,0BAA0B,QASrC","sourcesContent":["import type { AuditableEvent } from './auditable-events.shared.schema';\n\n/**\n * A per-org target VERIFIED as trusted for the current user — an org id the flow confirmed the\n * authenticated user is a genuine ACTIVE member of (via `resolveActiveMemberOrgIds`), or that came\n * from a cryptographically-validated connection.\n *\n * This is the CANONICAL type for ANY per-user org used to ROUTE DATA to a tenant or to SCOPE a\n * resource read/query by tenant — not audit routing alone. Per-org audit dispatch already routes\n * ONLY on this brand; new data-routing / tenant-scoping surfaces should take `VerifiedOrgId` too, so\n * the untrusted email-domain→org guess (`session.organizationId` / `DomainOrgLookupResult.scopeId`)\n * can NEVER reach them without a deliberate, reviewable cast (routing the audit trail on that guess\n * was the 2026-07-09 cross-tenant leak).\n *\n * NOT for the SSO-ENFORCEMENT boundary: the domain-scoped SSO gates (e.g. `_checkSSOGraceLoginAllowed`)\n * legitimately key on the domain-ownership hint and must NOT be forced to take a membership org —\n * that is a different, fail-safe boundary by design.\n *\n * The brand is a COMPILE-TIME guard: a plain `string` / `string[]` cannot be passed where a\n * `VerifiedOrgId` is expected without a deliberate cast — which is the resolver's job\n * (`resolveActiveMemberOrgIds`), never a raw caller value.\n */\nexport type VerifiedOrgId = string & { readonly __brand: 'VerifiedOrgId' };\n\n/**\n * The event payload handed to an `AuditLogSink` — the persisted audit event\n * MINUS the DB primary key (`_id`), which is store-specific and not yet\n * assigned at fan-out time (the emit runs INDEPENDENTLY of, and possibly before,\n * the DB write completes). The store-agnostic `eventId` (see\n * `AuditableEvent.eventId`) IS present and is the stable cross-store correlation\n * key every sink should record — the same id the Phase-3 reconciler and\n * `AuditLogVerification.verifyAuditEvent` key on.\n *\n * A DEDICATED emission type (rather than the raw persisted `AuditableEvent`)\n * mirrors `AgentCallTraceEmission`: the write path never has a DB `_id` to give,\n * so the contract must not demand one — and sinks can gain fields here without a\n * signature change at every call site.\n */\nexport type AuditLogEventEmission = Omit<AuditableEvent, '_id'>;\n\n/**\n * `AuditLogSink` — a destination for compliance audit events (the FAN_OUT\n * side of `EngineCapability.COMPLIANCE_AUDIT_TRAIL`). One sink per provider\n * (immudb, a SIEM webhook, …); the engine's composite fans EVERY event out to\n * EVERY declared sink, layered on the always-on database audit store.\n *\n * The interface lives in `saas-models` so the engine + apps depend on the\n * contract without importing any provider SDK (the dependency-cycle break,\n * mirroring `AgentCallTraceSink`).\n *\n * DELIVERY CONTRACT — deliberately STRONGER than the best-effort, sampled,\n * droppable `AgentCallTraceSink`; mirror that sink's WIRING (lazy resolution,\n * DI, never-throw) but NOT its guarantees:\n * - **At-least-once + unsampled** — every event must reach every sink; no\n * sampling, no drop-on-load. A sink that forwards asynchronously owns its own\n * durable buffering + retry.\n * - **Immutable / append-only** — a sink never updates or deletes a recorded\n * event.\n * - **Non-blocking** — the engine calls sinks fire-and-forget; a sink failure\n * is isolated + observable, never thrown onto the business-op path.\n * Completeness vs the authoritative DB store is the provider's reconciliation\n * concern, not the caller's.\n */\nexport interface AuditLogSink {\n /**\n * Record one audit event to this destination, honoring the delivery contract\n * above. Resolves when the event is durably accepted by the sink's own\n * buffering — not necessarily when persisted at the far end.\n *\n * MUST NOT throw synchronously NOR return a rejecting promise — buffer-and-\n * return. The engine's composite isolates each sink, but that isolation is a\n * backstop, not a licence: a sink that rejects here still breaks the contract,\n * and any future direct (non-composite) caller would inherit an unhandled\n * rejection on the audit path.\n */\n recordAuditEvent(event: AuditLogEventEmission): void | Promise<void>;\n /**\n * Optional flush/cleanup, best-effort on host shutdown. A sink that batches\n * asynchronously MUST drain here so short-lived hosts (minion/worker) don't\n * lose queued events.\n */\n shutdown?(): void | Promise<void>;\n}\n\n/**\n * Outcome of an `AuditLogVerification.verifyAuditEvent` check.\n *\n * Distinguishes the two very different `verified: false` cases an external auditor must NOT\n * conflate — an event that was never recorded at the destination vs. one that WAS recorded but whose\n * cryptographic proof now fails (the actual tamper signal). The prior contract collapsed both into a\n * bare boolean + free-text `detail`, so a tampered entry was indistinguishable from a missing one.\n */\nexport enum AuditLogVerificationStatus {\n /** Present AND its cryptographic proof verified — genuinely untampered. */\n Verified = 'verified',\n /** Not present at the destination (never recorded, or the reconciler has not caught up). NOT a tamper. */\n Absent = 'absent',\n /** Present but the proof FAILED — the entry was altered since it was written. The tamper signal. */\n Tampered = 'tampered',\n /** Could not be determined (store unreachable / no proof obtainable) — neither confirmed nor refuted. */\n Unverifiable = 'unverifiable',\n}\n\n/**\n * Result of an `AuditLogVerification` proof check. `verified` is retained as the fast boolean\n * (`status === Verified`); `status` is the discriminator auditors branch on (absent vs tampered vs\n * unverifiable) — a tamper must never read the same as a not-yet-recorded event.\n */\nexport interface AuditLogVerificationResult {\n verified: boolean;\n /** Discriminated outcome — the authoritative field; `verified` is `status === Verified`. */\n status: AuditLogVerificationStatus;\n /** Technology-specific proof detail (e.g. immudb tx id + inclusion proof). */\n detail?: string;\n}\n\n/**\n * Optional, technology-aware verification a provider MAY expose when its store\n * supports cryptographic proofs (e.g. immudb inclusion/consistency proofs).\n *\n * Day-to-day the audit pipeline is WRITE-ONLY; verification is an\n * external-auditor concern, resolved separately from the write path. This\n * contract is reserved in Phase 1 and implemented for immudb in Phase 5 —\n * providers whose technology cannot prove non-tampering simply don't expose it.\n */\nexport interface AuditLogVerification {\n /**\n * Verify a previously-recorded event is present + untampered at the\n * destination, returning the technology's proof result.\n */\n verifyAuditEvent(eventId: string): Promise<AuditLogVerificationResult>;\n}\n\n/**\n * Optional capability a sink exposes when it can persist the completeness reconciler's\n * high-water mark IN ITS OWN store (e.g. immudb under a reserved key) — so the reconciler\n * needs no separate state resource and no `AUDIT_LOGS` schema change. A sink whose\n * technology can't hold a cursor (a fire-and-forget SIEM webhook) simply doesn't\n * implement it, and the reconciler falls back to a bounded windowed replay.\n *\n * The mark is an opaque, monotonic cursor the reconciler defines (today: the ISO\n * `createdAt` of the last event confirmed synced); the store round-trips it verbatim.\n * The reconciler pairs this with an IDEMPOTENT `AuditLogSink.recordAuditEvent`\n * (write-if-absent) so replaying an already-synced event is a no-op.\n *\n * The mark belongs to ONE application. The reconciler reads it as the lower bound of THIS\n * application's replay, so a store that several applications share (one immudb database per\n * platform, #1696) must key it by the application the sink was built for — the immudb sink uses\n * `__wildo_audit_reconcile_checkpoint__:<applicationId>`. A mark shared across applications lets one\n * application's later progress become another's lower bound, and that application's missed rows are\n * never backfilled while every run reports success (#1739).\n */\nexport interface AuditReconcileCheckpointStore {\n /** The last persisted high-water mark, or `null` when the reconciler has never run (or the store is unreachable). */\n getAuditReconcileCheckpoint(): Promise<string | null>;\n /** Persist the high-water mark after a reconcile batch is confirmed in the store. */\n setAuditReconcileCheckpoint(mark: string): Promise<void>;\n}\n"]}
@@ -49,8 +49,21 @@ export declare const AuditLogs_ExportResponseDto: z.ZodObject<{
49
49
  correlationId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
50
50
  frontendServiceName: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
51
51
  clientInstanceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>;
52
+ actorKind: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./audit-actor.shared.schemas").AuditActorKind>>>>>;
53
+ agentActor: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodObject<{
54
+ agentRef: z.ZodString;
55
+ agentExecutionId: z.ZodOptional<z.ZodString>;
56
+ systemRef: z.ZodOptional<z.ZodString>;
57
+ toolName: z.ZodOptional<z.ZodString>;
58
+ decisionRef: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>>>;
60
+ delegatingClientId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
61
+ principalCredentialId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
62
+ actingViaServiceProviderRelationshipId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
63
+ providerOrganizationId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
64
+ serviceProviderFactorSource: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("../..").FactorSatisfactionSource>>>>;
52
65
  riskLevel: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ResourceOperationRiskLevel>>;
53
- eventType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
66
+ eventType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
54
67
  eventData: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodRecord<z.ZodString, z.ZodAny>>;
55
68
  eventCategory: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AuditEventCategory>>;
56
69
  severity: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AuditEventSeverity>>;
@@ -76,8 +89,21 @@ export declare const auditLogsResourceConfiguration_InitializationFactory: (reso
76
89
  correlationId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
77
90
  frontendServiceName: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
78
91
  clientInstanceId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>;
92
+ actorKind: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./audit-actor.shared.schemas").AuditActorKind>>>>>;
93
+ agentActor: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodObject<{
94
+ agentRef: z.ZodString;
95
+ agentExecutionId: z.ZodOptional<z.ZodString>;
96
+ systemRef: z.ZodOptional<z.ZodString>;
97
+ toolName: z.ZodOptional<z.ZodString>;
98
+ decisionRef: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strip>>>;
100
+ delegatingClientId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
101
+ principalCredentialId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
102
+ actingViaServiceProviderRelationshipId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
103
+ providerOrganizationId: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
104
+ serviceProviderFactorSource: z.ZodOptional<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("../..").FactorSatisfactionSource>>>>;
79
105
  riskLevel: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof ResourceOperationRiskLevel>>;
80
- eventType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
106
+ eventType: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>;
81
107
  eventData: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodRecord<z.ZodString, z.ZodAny>>;
82
108
  eventCategory: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AuditEventCategory>>;
83
109
  severity: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof AuditEventSeverity>>;
@@ -1 +1 @@
1
- {"version":3,"file":"audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,kCAAkC,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EACL,0BAA0B,EAE1B,oBAAoB,EAErB,MAAM,0CAA0C,CAAC;AAOlD,oBAAY,oBAAoB;IAC9B,iBAAiB,oBAAoB;CACtC;AAID,eAAO,MAAM,0BAA0B;;;;;;;;;;kBAa5B,CAAC;AAEZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAExF;;;;;;;;;;;GAWG;AACH,oBAAY,sBAAsB;IAChC,IAAI,SAAS;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;kBAI7B,CAAC;AAEZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAO1F;;;;;GAKG;AACH,eAAO,MAAM,oDAAoD,GAC/D,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;kBA8K9C,CAAC"}
1
+ {"version":3,"file":"audit-logs.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/audit-logs.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAA6B,MAAM,kCAAkC,CAAC;AAErH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,mDAAmD,CAAC;AAChJ,OAAO,EACL,0BAA0B,EAE1B,oBAAoB,EAErB,MAAM,0CAA0C,CAAC;AAQlD,oBAAY,oBAAoB;IAC9B,iBAAiB,oBAAoB;CACtC;AAID,eAAO,MAAM,0BAA0B;;;;;;;;;;kBAoB5B,CAAC;AAEZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAExF;;;;;;;;;;;GAWG;AACH,oBAAY,sBAAsB;IAChC,IAAI,SAAS;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAa7B,CAAC;AAEZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAO1F;;;;;GAKG;AACH,eAAO,MAAM,oDAAoD,GAC/D,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkL9C,CAAC"}