@wildo-ai/saas-models 1.0.1 → 1.1.0

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 (1282) hide show
  1. package/LICENSE +34 -0
  2. package/dist/esm/.builder.pid +9 -0
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/setup.js +18 -3
  5. package/dist/esm/__tests__/setup.js.map +1 -1
  6. package/dist/esm/_inspect.d.ts +2 -0
  7. package/dist/esm/_inspect.d.ts.map +1 -0
  8. package/dist/esm/_inspect.js +3 -0
  9. package/dist/esm/_inspect.js.map +1 -0
  10. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts +6 -6
  11. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  12. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js +5 -1
  13. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
  14. package/dist/esm/applications/application-subject.shared.schemas.d.ts +51 -0
  15. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -0
  16. package/dist/esm/applications/application-subject.shared.schemas.js +56 -0
  17. package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -0
  18. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts +9 -11
  19. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  20. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +42 -74
  21. package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
  22. package/dist/esm/applications/applications-context.schemas.d.ts +228 -200
  23. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  24. package/dist/esm/applications/applications-context.schemas.js +1 -1
  25. package/dist/esm/applications/applications-context.schemas.js.map +1 -1
  26. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts +4 -9
  27. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  28. package/dist/esm/applications/applications.shared.resources-config.schemas.js +103 -87
  29. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  30. package/dist/esm/applications/applications.shared.schemas.d.ts +59 -5
  31. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  32. package/dist/esm/applications/applications.shared.schemas.js +80 -3
  33. package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
  34. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +4 -4
  35. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  36. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +98 -25
  37. package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
  38. package/dist/esm/billing/billing-account.shared.schemas.d.ts +32 -8
  39. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  40. package/dist/esm/billing/billing-account.shared.schemas.js +67 -2
  41. package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
  42. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +8 -8
  43. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  44. package/dist/esm/billing/billing-configuration.shared.schemas.js +2 -3
  45. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  46. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +75 -0
  47. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/billing-enums.shared.schemas.js +78 -1
  49. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  50. package/dist/esm/billing/billing-types.shared.schemas.d.ts +204 -42
  51. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  52. package/dist/esm/billing/billing-types.shared.schemas.js +76 -1
  53. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  54. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +8 -6
  55. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  56. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +48 -16
  57. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
  58. package/dist/esm/billing/credit-pool.shared.schemas.d.ts +9 -9
  59. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  60. package/dist/esm/billing/credit-pool.shared.schemas.js +13 -6
  61. package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
  62. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts +2 -2
  63. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  64. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +26 -17
  65. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
  66. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts +10 -10
  67. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  68. package/dist/esm/billing/invoice-ref.shared.schemas.js +32 -7
  69. package/dist/esm/billing/invoice-ref.shared.schemas.js.map +1 -1
  70. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts +7 -7
  71. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  72. package/dist/esm/billing/price.shared.resources-config.schemas.js +23 -5
  73. package/dist/esm/billing/price.shared.resources-config.schemas.js.map +1 -1
  74. package/dist/esm/billing/price.shared.schemas.d.ts +4 -4
  75. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  76. package/dist/esm/billing/price.shared.schemas.js +1 -1
  77. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  78. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +9 -9
  79. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  80. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +10 -2
  81. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  82. package/dist/esm/billing/product-definition.shared.schemas.d.ts +27 -27
  83. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  84. package/dist/esm/billing/product-definition.shared.schemas.js +39 -9
  85. package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
  86. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +22 -22
  87. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  88. package/dist/esm/billing/product.shared.resources-config.schemas.js +6 -6
  89. package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
  90. package/dist/esm/billing/product.shared.schemas.d.ts +19 -19
  91. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  92. package/dist/esm/billing/product.shared.schemas.js +1 -1
  93. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  94. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts +7 -7
  95. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  96. package/dist/esm/billing/promotions.shared.resources-config.schemas.js +34 -6
  97. package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
  98. package/dist/esm/billing/promotions.shared.schemas.d.ts +2 -2
  99. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  100. package/dist/esm/billing/promotions.shared.schemas.js +1 -1
  101. package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
  102. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +12 -12
  103. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  104. package/dist/esm/billing/referral.shared.resources-config.schemas.js +5 -5
  105. package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
  106. package/dist/esm/billing/referral.shared.schemas.d.ts +7 -7
  107. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  108. package/dist/esm/billing/referral.shared.schemas.js +36 -8
  109. package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
  110. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +6 -6
  111. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  112. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +51 -24
  113. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  114. package/dist/esm/billing/subscription.shared.schemas.d.ts +13 -13
  115. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  116. package/dist/esm/billing/subscription.shared.schemas.js +37 -5
  117. package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
  118. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts +2 -2
  119. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  120. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js +23 -14
  121. package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
  122. package/dist/esm/billing/usage-record.shared.schemas.d.ts +15 -12
  123. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  124. package/dist/esm/billing/usage-record.shared.schemas.js +34 -7
  125. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  126. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts +36 -36
  127. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  128. package/dist/esm/charts/aggregation-query.shared.schemas.js +6 -6
  129. package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
  130. package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
  131. package/dist/esm/charts/aggregation.shared.definitions.js +1 -1
  132. package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
  133. package/dist/esm/charts/chart-definition-builder.shared.d.ts +5 -3
  134. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  135. package/dist/esm/charts/chart-definition-builder.shared.js +4 -2
  136. package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
  137. package/dist/esm/{runtime/companion-artifact-placement.shared.definitions.d.ts → companion/artifact-placement.shared.definitions.d.ts} +2 -3
  138. package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -0
  139. package/dist/esm/{runtime/companion-artifact-placement.shared.definitions.js → companion/artifact-placement.shared.definitions.js} +1 -2
  140. package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -0
  141. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +131 -0
  142. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -0
  143. package/dist/esm/companion/provider-discovery.shared.schemas.js +122 -0
  144. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -0
  145. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts +6 -0
  146. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -0
  147. package/dist/esm/companion/shared-library-companion.shared.definitions.js +1 -0
  148. package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -0
  149. package/dist/esm/companion-exports.d.ts +4 -0
  150. package/dist/esm/companion-exports.d.ts.map +1 -0
  151. package/dist/esm/companion-exports.js +4 -0
  152. package/dist/esm/companion-exports.js.map +1 -0
  153. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +65 -0
  154. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -0
  155. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +68 -0
  156. package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -0
  157. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +147 -0
  158. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -0
  159. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js +20 -0
  160. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -0
  161. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +60 -16
  162. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +77 -10
  164. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +58 -0
  166. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -0
  167. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +74 -0
  168. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -0
  169. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +1949 -115
  170. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  171. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +2229 -11
  172. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts +25 -10
  174. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  175. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +226 -3
  176. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  177. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts +8 -0
  178. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -0
  179. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js +9 -0
  180. package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -0
  181. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +524 -0
  182. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -0
  183. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +482 -0
  184. package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -0
  185. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +112 -0
  186. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -0
  187. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +120 -0
  188. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -0
  189. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts +134 -0
  190. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -0
  191. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js +129 -0
  192. package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -0
  193. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +1 -1
  194. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
  195. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +1 -1
  196. package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +1 -1
  197. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts +50 -0
  198. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -0
  199. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js +98 -0
  200. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -0
  201. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +181 -0
  202. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -0
  203. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +184 -0
  204. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -0
  205. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +230 -0
  206. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -0
  207. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +232 -0
  208. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -0
  209. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts +220 -0
  210. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -0
  211. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js +252 -0
  212. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -0
  213. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts +75 -0
  214. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -0
  215. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js +43 -0
  216. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -0
  217. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +56 -43
  218. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/compliance/privacy/privacy.shared.schemas.js +72 -18
  220. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  221. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +21 -3
  222. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  223. package/dist/esm/compliance/privacy/redaction.shared.schemas.js +19 -1
  224. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  225. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +124 -0
  226. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -0
  227. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +107 -0
  228. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -0
  229. package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
  230. package/dist/esm/compliance/privacy/sharing.shared.schemas.js +1 -1
  231. package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
  232. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +279 -0
  233. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -0
  234. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +238 -0
  235. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -0
  236. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts +74 -0
  237. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -0
  238. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +137 -0
  239. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -0
  240. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +457 -0
  241. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -0
  242. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +549 -0
  243. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -0
  244. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +13 -13
  245. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  246. package/dist/esm/config/analytics-value-moments.shared.schemas.js +1 -1
  247. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  248. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +135 -125
  249. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  250. package/dist/esm/config/app-configuration-shared.shared.schemas.js +74 -10
  251. package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
  252. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts +94 -0
  253. package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -0
  254. package/dist/esm/config/app-frontend-type.shared.schemas.js +95 -0
  255. package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -0
  256. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +35 -5
  257. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  258. package/dist/esm/config/auth-config-resolution.shared.utils.js +44 -2
  259. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  260. package/dist/esm/config/brand-assets.shared.schemas.d.ts +89 -0
  261. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -0
  262. package/dist/esm/config/brand-assets.shared.schemas.js +99 -0
  263. package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -0
  264. package/dist/esm/config/configuration-validation.shared.schemas.d.ts +12 -1
  265. package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
  266. package/dist/esm/config/configuration-validation.shared.schemas.js +12 -1
  267. package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
  268. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +170 -91
  269. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  270. package/dist/esm/config/entity-identity-config.shared.schemas.js +130 -19
  271. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  272. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +167 -166
  273. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  274. package/dist/esm/config/frontend/chart-definition.shared.schemas.js +93 -9
  275. package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
  276. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +69 -0
  277. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -0
  278. package/dist/esm/config/frontend/chart-registration-alignment.shared.js +61 -0
  279. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -0
  280. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +110 -39
  281. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  282. package/dist/esm/config/frontend/navigation.shared.schemas.js +93 -9
  283. package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
  284. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts +70 -134
  285. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  286. package/dist/esm/config/frontend/onboarding.shared.schemas.js +27 -25
  287. package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
  288. package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
  289. package/dist/esm/config/postgresql.shared.schemas.js +1 -1
  290. package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
  291. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts +24 -0
  292. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -0
  293. package/dist/esm/config/registration-acquisition-policy.shared.utils.js +62 -0
  294. package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -0
  295. package/dist/esm/config-authoring.entry.d.ts +5 -0
  296. package/dist/esm/config-authoring.entry.d.ts.map +1 -0
  297. package/dist/esm/config-authoring.entry.js +7 -0
  298. package/dist/esm/config-authoring.entry.js.map +1 -0
  299. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts +1 -1
  300. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  301. package/dist/esm/crdt/crdt-merge.shared.utils.js +1 -1
  302. package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
  303. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts +66 -0
  304. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -0
  305. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js +118 -0
  306. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -0
  307. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +348 -1
  308. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  309. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +357 -1
  310. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  311. package/dist/esm/errors/errors.shared.definitions.d.ts +2 -2
  312. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  313. package/dist/esm/errors/errors.shared.definitions.js +12 -1
  314. package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
  315. package/dist/esm/errors/errors.shared.schemas.d.ts +82 -36
  316. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  317. package/dist/esm/errors/errors.shared.schemas.js +100 -3
  318. package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
  319. package/dist/esm/errors/errors.shared.utils.d.ts +1 -1
  320. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  321. package/dist/esm/errors/errors.shared.utils.js +1 -1
  322. package/dist/esm/errors/errors.shared.utils.js.map +1 -1
  323. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts +16 -0
  324. package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -0
  325. package/dist/esm/errors/resource-access-forbidden.shared.error.js +18 -0
  326. package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -0
  327. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts +113 -0
  328. package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -0
  329. package/dist/esm/errors/zod-issue-formatting.shared.utils.js +102 -0
  330. package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -0
  331. package/dist/esm/exports/tabular-csv.shared.utils.d.ts +42 -0
  332. package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -0
  333. package/dist/esm/exports/tabular-csv.shared.utils.js +63 -0
  334. package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -0
  335. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +347 -0
  336. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -0
  337. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js +206 -0
  338. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -0
  339. package/dist/esm/external-data.exports.d.ts +30 -0
  340. package/dist/esm/external-data.exports.d.ts.map +1 -0
  341. package/dist/esm/external-data.exports.js +30 -0
  342. package/dist/esm/external-data.exports.js.map +1 -0
  343. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts +63 -0
  344. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -0
  345. package/dist/esm/external-providers/compose-provider-registry.shared.js +102 -0
  346. package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -0
  347. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +164 -0
  348. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -0
  349. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +194 -0
  350. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -0
  351. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +39 -0
  352. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -0
  353. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +85 -0
  354. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -0
  355. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts +22 -22
  356. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  357. package/dist/esm/external-providers/external-providers.shared.schemas.js +5 -5
  358. package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
  359. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +319 -0
  360. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -0
  361. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js +17 -0
  362. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -0
  363. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +35 -0
  364. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -0
  365. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +19 -0
  366. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -0
  367. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +135 -0
  368. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -0
  369. package/dist/esm/external-providers/provider-capability.shared.schemas.js +102 -0
  370. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -0
  371. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +175 -0
  372. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -0
  373. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +211 -0
  374. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -0
  375. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +37 -0
  376. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -0
  377. package/dist/esm/external-providers/provider-metadata.shared.schemas.js +58 -0
  378. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -0
  379. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +65 -0
  380. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -0
  381. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +63 -0
  382. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -0
  383. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +99 -0
  384. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -0
  385. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +137 -0
  386. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -0
  387. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +39 -0
  388. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -0
  389. package/dist/esm/features/application-features.shared.resources-config.schemas.js +147 -0
  390. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -0
  391. package/dist/esm/features/core-feature-definitions.shared.d.ts +17 -2
  392. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  393. package/dist/esm/features/core-feature-definitions.shared.js +91 -3
  394. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  395. package/dist/esm/features/feature-builders.shared.d.ts +13 -2
  396. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  397. package/dist/esm/features/feature-builders.shared.js +3 -1
  398. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  399. package/dist/esm/features/feature-definition.shared.schemas.d.ts +70 -24
  400. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  401. package/dist/esm/features/feature-definition.shared.schemas.js +84 -1
  402. package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
  403. package/dist/esm/features/feature-registry.shared.d.ts +8 -9
  404. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  405. package/dist/esm/features/feature-registry.shared.js +5 -8
  406. package/dist/esm/features/feature-registry.shared.js.map +1 -1
  407. package/dist/esm/features/feature-resolution.shared.schemas.d.ts +1 -1
  408. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  409. package/dist/esm/features/feature-resolution.shared.schemas.js +1 -1
  410. package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
  411. package/dist/esm/features/scope-features.shared.schemas.d.ts +9 -10
  412. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  413. package/dist/esm/features/scope-features.shared.schemas.js +20 -6
  414. package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
  415. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +9 -9
  416. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  417. package/dist/esm/features/user-features.shared.resources-config.schemas.js +35 -1
  418. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  419. package/dist/esm/files/files.shared.resources-config.schemas.d.ts +35 -9
  420. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  421. package/dist/esm/files/files.shared.resources-config.schemas.js +27 -5
  422. package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
  423. package/dist/esm/files/files.shared.schemas.d.ts +71 -13
  424. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  425. package/dist/esm/files/files.shared.schemas.js +110 -35
  426. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  427. package/dist/esm/files/files.shared.utils.d.ts +9 -5
  428. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  429. package/dist/esm/files/files.shared.utils.js +10 -6
  430. package/dist/esm/files/files.shared.utils.js.map +1 -1
  431. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts +40 -0
  432. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -0
  433. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js +204 -0
  434. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -0
  435. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts +113 -0
  436. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -0
  437. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js +153 -0
  438. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -0
  439. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts +61 -0
  440. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -0
  441. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js +143 -0
  442. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -0
  443. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts +77 -0
  444. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -0
  445. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js +103 -0
  446. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -0
  447. package/dist/esm/flows-actors/actors.shared.schemas.d.ts +339 -326
  448. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/actors.shared.schemas.js +29 -6
  450. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  451. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +237 -0
  452. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -0
  453. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +152 -0
  454. package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -0
  455. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +180 -23
  456. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  457. package/dist/esm/flows-actors/agents.shared.schemas.js +69 -2
  458. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  459. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts +19 -0
  460. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts.map +1 -0
  461. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js +35 -0
  462. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js.map +1 -0
  463. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +29 -45
  464. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +1 -1
  465. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js +2 -34
  466. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js.map +1 -1
  467. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts +2 -2
  468. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js +1 -1
  470. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js.map +1 -1
  471. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +642 -0
  472. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -0
  473. package/dist/esm/flows-actors/deliberation.shared.schemas.js +604 -0
  474. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -0
  475. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts +48 -0
  476. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -0
  477. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js +179 -0
  478. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -0
  479. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +200 -0
  480. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -0
  481. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +337 -0
  482. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -0
  483. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts +59 -0
  484. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -0
  485. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js +223 -0
  486. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -0
  487. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +426 -0
  488. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -0
  489. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js +317 -0
  490. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -0
  491. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +109 -58
  492. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +48 -1
  494. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  495. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts +62 -62
  496. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  497. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +2 -2
  498. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
  499. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +112 -11
  500. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +63 -1
  502. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
  503. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +60 -20
  504. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  505. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +36 -3
  506. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  507. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts +35 -0
  508. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -0
  509. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js +1 -0
  510. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -0
  511. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +88 -63
  512. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +32 -5
  514. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  515. package/dist/esm/flows-actors/flows.shared.schemas.d.ts +63 -49
  516. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  517. package/dist/esm/flows-actors/flows.shared.schemas.js +1 -1
  518. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  519. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts +73 -0
  520. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js +149 -0
  522. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -0
  523. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +20 -0
  524. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -0
  525. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +34 -0
  526. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -0
  527. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts +125 -0
  528. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -0
  529. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js +136 -0
  530. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -0
  531. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +180 -0
  532. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -0
  533. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +187 -0
  534. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -0
  535. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts +28 -0
  536. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +1 -0
  537. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js +28 -0
  538. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js.map +1 -0
  539. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +446 -0
  540. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -0
  541. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +678 -0
  542. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -0
  543. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +106 -0
  544. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -0
  545. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +243 -0
  546. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -0
  547. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts +29 -0
  548. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts.map +1 -0
  549. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js +58 -0
  550. package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js.map +1 -0
  551. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts +61 -0
  552. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -0
  553. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js +93 -0
  554. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -0
  555. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts +5 -5
  556. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  557. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js +2 -2
  558. package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
  559. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts +81 -0
  560. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +1 -0
  561. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js +82 -0
  562. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js.map +1 -0
  563. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +257 -194
  564. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  565. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js +28 -2
  566. package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
  567. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts.map +1 -1
  568. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js +1 -1
  569. package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js.map +1 -1
  570. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
  571. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +1 -1
  572. package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
  573. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts +51 -89
  574. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  575. package/dist/esm/guidance/guidance-flow.shared.schemas.js +1 -1
  576. package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
  577. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts +22 -19
  578. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  579. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js +61 -5
  580. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
  581. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts +46 -10
  582. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  583. package/dist/esm/guidance/guidance-state.shared.schemas.js +15 -4
  584. package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
  585. package/dist/esm/guidance/guidance-state.shared.utils.d.ts +25 -0
  586. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -0
  587. package/dist/esm/guidance/guidance-state.shared.utils.js +72 -0
  588. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -0
  589. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts +11 -11
  590. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  591. package/dist/esm/guidance/lifecycle-config.shared.schemas.js +1 -1
  592. package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
  593. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts +28 -25
  594. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  595. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js +71 -7
  596. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
  597. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts +53 -14
  598. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  599. package/dist/esm/guidance/lifecycle-state.shared.schemas.js +26 -25
  600. package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
  601. package/dist/esm/guidance/milestone-builders.shared.d.ts +2 -2
  602. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  603. package/dist/esm/guidance/milestone-builders.shared.js +1 -1
  604. package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
  605. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts +2 -2
  606. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  607. package/dist/esm/guidance/milestone-definition.shared.schemas.js +1 -1
  608. package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
  609. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +22 -19
  610. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  611. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js +72 -7
  612. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
  613. package/dist/esm/guidance/progression-state.shared.schemas.d.ts +40 -10
  614. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  615. package/dist/esm/guidance/progression-state.shared.schemas.js +16 -6
  616. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  617. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts +69 -0
  618. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -0
  619. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js +232 -0
  620. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -0
  621. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +566 -0
  622. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -0
  623. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +513 -0
  624. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -0
  625. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts +52 -0
  626. package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -0
  627. package/dist/esm/i18n/interpolate-label-params.shared.utils.js +63 -0
  628. package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -0
  629. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts +3 -3
  630. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  631. package/dist/esm/i18n/labelling.dto.shared.schemas.js +1 -1
  632. package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
  633. package/dist/esm/index.d.ts +277 -200
  634. package/dist/esm/index.d.ts.map +1 -1
  635. package/dist/esm/index.js +122 -15
  636. package/dist/esm/index.js.map +1 -1
  637. package/dist/esm/meta-workflows.exports.d.ts +51 -0
  638. package/dist/esm/meta-workflows.exports.d.ts.map +1 -0
  639. package/dist/esm/meta-workflows.exports.js +51 -0
  640. package/dist/esm/meta-workflows.exports.js.map +1 -0
  641. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts +16 -16
  642. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  643. package/dist/esm/monitoring/monitoring.shared.schemas.js +1 -1
  644. package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
  645. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts +9 -9
  646. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  647. package/dist/esm/notifications/email/email-context.shared.schemas.js +8 -3
  648. package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
  649. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +33 -46
  650. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  651. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js +20 -140
  652. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  653. package/dist/esm/notifications/email/email-template.shared.enums.d.ts +145 -0
  654. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -0
  655. package/dist/esm/notifications/email/email-template.shared.enums.js +164 -0
  656. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -0
  657. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts +43 -0
  658. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -0
  659. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js +231 -0
  660. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -0
  661. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts +159 -0
  662. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -0
  663. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js +191 -0
  664. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -0
  665. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +62 -0
  666. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -0
  667. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +183 -0
  668. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -0
  669. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +134 -0
  670. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -0
  671. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +159 -0
  672. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -0
  673. package/dist/esm/notifications/notification-badges.core.definitions.d.ts +10 -1
  674. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  675. package/dist/esm/notifications/notification-badges.core.definitions.js +11 -13
  676. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  677. package/dist/esm/notifications/notification-badges.schemas.d.ts +147 -43
  678. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  679. package/dist/esm/notifications/notification-badges.schemas.js +130 -23
  680. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  681. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +40 -15
  682. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  683. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +149 -23
  684. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
  685. package/dist/esm/notifications/notifications.shared.schemas.d.ts +352 -25
  686. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  687. package/dist/esm/notifications/notifications.shared.schemas.js +47 -2
  688. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  689. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +21 -10
  690. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  691. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +54 -47
  692. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  693. package/dist/esm/organizations/organization-features.shared.schemas.d.ts +10 -2
  694. package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
  695. package/dist/esm/organizations/organization-features.shared.schemas.js +10 -2
  696. package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
  697. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +31 -17
  698. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  699. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +294 -54
  700. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
  701. package/dist/esm/organizations/organization-members.shared.schemas.d.ts +31 -41
  702. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  703. package/dist/esm/organizations/organization-members.shared.schemas.js +181 -37
  704. package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
  705. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts +8 -8
  706. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  707. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js +43 -2
  708. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
  709. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts +25 -4
  710. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  711. package/dist/esm/organizations/organization-notifications.shared.schemas.js +35 -15
  712. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  713. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts +7 -7
  714. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  715. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js +42 -3
  716. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
  717. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +4 -4
  718. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  719. package/dist/esm/organizations/organization-preferences.shared.schemas.js +17 -4
  720. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  721. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +10 -10
  722. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  723. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js +32 -2
  724. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
  725. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +6 -6
  726. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  727. package/dist/esm/organizations/organization-profile.shared.schemas.js +28 -2
  728. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  729. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts +94 -0
  730. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -0
  731. package/dist/esm/organizations/organization-unit-inheritance.shared.js +96 -0
  732. package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -0
  733. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts +30 -0
  734. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -0
  735. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +97 -0
  736. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -0
  737. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts +56 -0
  738. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -0
  739. package/dist/esm/organizations/organization-unit-members.shared.schemas.js +92 -0
  740. package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -0
  741. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +130 -0
  742. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -0
  743. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +139 -0
  744. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -0
  745. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts +27 -0
  746. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -0
  747. package/dist/esm/organizations/organization-unit-narrowing.example.js +29 -0
  748. package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -0
  749. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +137 -0
  750. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -0
  751. package/dist/esm/organizations/organization-unit-narrowing.shared.js +133 -0
  752. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -0
  753. package/dist/esm/organizations/organization-units.shared.path.d.ts +103 -0
  754. package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -0
  755. package/dist/esm/organizations/organization-units.shared.path.js +120 -0
  756. package/dist/esm/organizations/organization-units.shared.path.js.map +1 -0
  757. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts +8 -8
  758. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  759. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +1 -1
  760. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
  761. package/dist/esm/organizations/organization-units.shared.schemas.d.ts +69 -8
  762. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  763. package/dist/esm/organizations/organization-units.shared.schemas.js +89 -5
  764. package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
  765. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +46 -11
  766. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  767. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +505 -34
  768. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  769. package/dist/esm/organizations/organizations.shared.schemas.d.ts +95 -39
  770. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  771. package/dist/esm/organizations/organizations.shared.schemas.js +228 -6
  772. package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
  773. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -0
  774. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -0
  775. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +66 -0
  776. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -0
  777. package/dist/esm/provider-registration-runtime.exports.d.ts +4 -0
  778. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -0
  779. package/dist/esm/provider-registration-runtime.exports.js +4 -0
  780. package/dist/esm/provider-registration-runtime.exports.js.map +1 -0
  781. package/dist/esm/public-runtime/index.d.ts +164 -0
  782. package/dist/esm/public-runtime/index.d.ts.map +1 -0
  783. package/dist/esm/public-runtime/index.js +164 -0
  784. package/dist/esm/public-runtime/index.js.map +1 -0
  785. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +4 -4
  786. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  787. package/dist/esm/queue/jobs.shared.resources-config.schemas.js +12 -1
  788. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  789. package/dist/esm/queue/jobs.shared.schemas.d.ts +114 -42
  790. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  791. package/dist/esm/queue/jobs.shared.schemas.js +114 -12
  792. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  793. package/dist/esm/queue/jobs.shared.utils.d.ts +3 -3
  794. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  795. package/dist/esm/queue/jobs.shared.utils.js +2 -2
  796. package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
  797. package/dist/esm/queue/queues.shared.schemas.d.ts +17 -15
  798. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  799. package/dist/esm/queue/queues.shared.schemas.js +14 -5
  800. package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
  801. package/dist/esm/queue/queues.shared.utils.d.ts +137 -6
  802. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  803. package/dist/esm/queue/queues.shared.utils.js +161 -9
  804. package/dist/esm/queue/queues.shared.utils.js.map +1 -1
  805. package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
  806. package/dist/esm/queue/rabbitmq-queue-args.shared.js +1 -1
  807. package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
  808. package/dist/esm/requests/header-keys.shared.d.ts +23 -1
  809. package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
  810. package/dist/esm/requests/header-keys.shared.js +45 -2
  811. package/dist/esm/requests/header-keys.shared.js.map +1 -1
  812. package/dist/esm/requests/http-requests.shared.d.ts +1 -0
  813. package/dist/esm/requests/http-requests.shared.d.ts.map +1 -1
  814. package/dist/esm/requests/http-requests.shared.js +2 -1
  815. package/dist/esm/requests/http-requests.shared.js.map +1 -1
  816. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +189 -5
  817. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  818. package/dist/esm/requests/manual-controllers-routes-urls.js +255 -6
  819. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  820. package/dist/esm/requests/rate-limits.shared.schemas.d.ts +75 -24
  821. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  822. package/dist/esm/requests/rate-limits.shared.schemas.js +80 -18
  823. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  824. package/dist/esm/requests/websocket.shared.schemas.d.ts +248 -120
  825. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  826. package/dist/esm/requests/websocket.shared.schemas.js +92 -2
  827. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  828. package/dist/esm/resources/child-operations.shared.schemas.d.ts +128 -23
  829. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  830. package/dist/esm/resources/child-operations.shared.schemas.js +147 -11
  831. package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
  832. package/dist/esm/resources/context-policy.shared.schemas.d.ts +4 -4
  833. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  834. package/dist/esm/resources/context-policy.shared.schemas.js +1 -1
  835. package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
  836. package/dist/esm/resources/relationship-display.shared.schemas.d.ts +31 -1352
  837. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  838. package/dist/esm/resources/relationship-display.shared.schemas.js +13 -161
  839. package/dist/esm/resources/relationship-display.shared.schemas.js.map +1 -1
  840. package/dist/esm/resources/resources-config.shared.factory.d.ts +60 -5
  841. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  842. package/dist/esm/resources/resources-config.shared.factory.js +1507 -87
  843. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  844. package/dist/esm/resources/resources-config.shared.schemas.d.ts +1638 -43
  845. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  846. package/dist/esm/resources/resources-config.shared.schemas.js +478 -13
  847. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  848. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts +3 -3
  849. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  850. package/dist/esm/resources/resources-registry.shared.core.definitions.js +782 -96
  851. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  852. package/dist/esm/resources/resources-relationships.shared.factory.d.ts +37 -7
  853. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  854. package/dist/esm/resources/resources-relationships.shared.factory.js +76 -24
  855. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  856. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts +19 -19
  857. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  858. package/dist/esm/resources/resources-serialization.shared.schemas.js +1 -1
  859. package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
  860. package/dist/esm/resources/resources.shared.core.definitions.d.ts +84 -8
  861. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  862. package/dist/esm/resources/resources.shared.core.definitions.js +165 -19
  863. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  864. package/dist/esm/resources/resources.shared.schemas.d.ts +582 -602
  865. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  866. package/dist/esm/resources/resources.shared.schemas.js +581 -5
  867. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  868. package/dist/esm/resources/resources.shared.utils.d.ts +363 -15
  869. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  870. package/dist/esm/resources/resources.shared.utils.js +569 -16
  871. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  872. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +65 -0
  873. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -0
  874. package/dist/esm/resources/utils/collection-export.shared.utils.js +150 -0
  875. package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -0
  876. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts +134 -0
  877. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -0
  878. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js +167 -0
  879. package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -0
  880. package/dist/esm/resources/utils/composition-seedability.validation.d.ts +63 -0
  881. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -0
  882. package/dist/esm/resources/utils/composition-seedability.validation.js +75 -0
  883. package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -0
  884. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts +10 -0
  885. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -0
  886. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js +25 -0
  887. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -0
  888. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts +111 -0
  889. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -0
  890. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js +109 -0
  891. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -0
  892. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts +52 -0
  893. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -0
  894. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js +57 -0
  895. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -0
  896. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  897. package/dist/esm/resources/utils/repository-dto-builder.utils.js +1 -1
  898. package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
  899. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts +108 -0
  900. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -0
  901. package/dist/esm/resources/utils/required-fk-fillability.validation.js +186 -0
  902. package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -0
  903. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts +107 -3
  904. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  905. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js +133 -2
  906. package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
  907. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +39 -31
  908. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  909. package/dist/esm/resources/utils/resource-polymorphism.factory.js +9 -9
  910. package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
  911. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts +7 -7
  912. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  913. package/dist/esm/resources/utils/resource-polymorphism.relationships.js +1 -1
  914. package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
  915. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts +139 -5
  916. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  917. package/dist/esm/resources/utils/resource-polymorphism.schemas.js +301 -3
  918. package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
  919. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts +1 -1
  920. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  921. package/dist/esm/resources/utils/resource-polymorphism.utils.js +1 -1
  922. package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
  923. package/dist/esm/resources/utils/resource-subtree.utils.d.ts +1 -1
  924. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  925. package/dist/esm/resources/utils/resource-subtree.utils.js +1 -1
  926. package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
  927. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts +1 -1
  928. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  929. package/dist/esm/resources/utils/resources-config-context-needs.utils.js +1 -1
  930. package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
  931. package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
  932. package/dist/esm/resources/utils/resources-config-naming.utils.js +1 -1
  933. package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
  934. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +256 -39
  935. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  936. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js +898 -233
  937. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
  938. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts +16 -6
  939. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  940. package/dist/esm/resources/utils/resources-config-operations.path.utils.js +35 -10
  941. package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
  942. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts +120 -20
  943. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  944. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js +394 -81
  945. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
  946. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts +2 -2
  947. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  948. package/dist/esm/resources/utils/resources-config-operations.utils.js +1 -1
  949. package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
  950. package/dist/esm/resources/utils/resources-serialization.utils.d.ts +77 -2
  951. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  952. package/dist/esm/resources/utils/resources-serialization.utils.js +80 -1
  953. package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
  954. package/dist/esm/resources/utils/resources-summary.utils.d.ts +1 -1
  955. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  956. package/dist/esm/resources/utils/resources-summary.utils.js +1 -1
  957. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  958. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts +21 -3
  959. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  960. package/dist/esm/resources/utils/schema-family-builder.utils.js +7 -1
  961. package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
  962. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  963. package/dist/esm/resources/utils/schema-type-inference.utils.js +1 -1
  964. package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
  965. package/dist/esm/resources/utils/schema-type-utils.d.ts +1 -1
  966. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  967. package/dist/esm/resources/utils/schema-type-utils.js +1 -1
  968. package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
  969. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts +1 -1
  970. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  971. package/dist/esm/resources/utils/schema-variant-resolver.utils.js +1 -1
  972. package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
  973. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts +203 -0
  974. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -0
  975. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +284 -0
  976. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -0
  977. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts +25 -0
  978. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -0
  979. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js +322 -0
  980. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -0
  981. package/dist/esm/runtime/domain-module.shared.definitions.d.ts +32 -10
  982. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  983. package/dist/esm/runtime/domain-module.shared.definitions.js +3 -2
  984. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  985. package/dist/esm/runtime/execution-context.shared.schemas.d.ts +93 -9
  986. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  987. package/dist/esm/runtime/execution-context.shared.schemas.js +122 -7
  988. package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
  989. package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
  990. package/dist/esm/runtime/runtime.shared.schemas.js +1 -1
  991. package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
  992. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +14 -11
  993. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  994. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +65 -2
  995. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  996. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +14 -11
  997. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  998. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +162 -1
  999. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  1000. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +79 -29
  1001. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  1002. package/dist/esm/security/api-keys/api-keys.shared.schemas.js +87 -6
  1003. package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
  1004. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts +185 -0
  1005. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -0
  1006. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js +198 -0
  1007. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -0
  1008. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +307 -149
  1009. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  1010. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +177 -27
  1011. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  1012. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +64 -8
  1013. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  1014. package/dist/esm/security/authentications/authentication.shared.schemas.js +56 -9
  1015. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  1016. package/dist/esm/security/authentications/authentication.shared.utils.d.ts +3 -3
  1017. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/authentications/authentication.shared.utils.js +1 -1
  1019. package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
  1020. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +103 -5
  1021. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  1022. package/dist/esm/security/authentications/consumable-token.shared.schemas.js +31 -1
  1023. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  1024. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts +278 -0
  1025. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -0
  1026. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js +335 -0
  1027. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -0
  1028. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts +6 -6
  1029. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  1030. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js +11 -4
  1031. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
  1032. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +51 -18
  1033. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  1034. package/dist/esm/security/authentications/registration.shared.dto.schemas.js +70 -13
  1035. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  1036. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts +69 -0
  1037. package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -0
  1038. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js +93 -0
  1039. package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -0
  1040. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts +91 -0
  1041. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -0
  1042. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +91 -0
  1043. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.map +1 -0
  1044. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts +2 -9
  1045. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  1046. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js +49 -33
  1047. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
  1048. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +41 -14
  1049. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  1050. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +158 -5
  1051. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  1052. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts +21 -9
  1053. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  1054. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js +92 -18
  1055. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
  1056. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +11 -10
  1057. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  1058. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +29 -7
  1059. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
  1060. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts +12 -5
  1061. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  1062. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js +81 -5
  1063. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
  1064. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts +17 -5
  1065. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  1066. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js +29 -5
  1067. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
  1068. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts +2 -9
  1069. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  1070. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js +46 -33
  1071. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
  1072. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts +34 -9
  1073. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  1074. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +47 -3
  1075. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
  1076. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +2 -17
  1077. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  1078. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +55 -53
  1079. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  1080. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -37
  1081. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +53 -13
  1083. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  1084. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts +79 -7
  1085. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  1086. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js +157 -14
  1087. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
  1088. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +113 -118
  1089. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +111 -49
  1091. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  1092. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +57 -0
  1093. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -0
  1094. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +58 -0
  1095. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -0
  1096. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts +35 -0
  1097. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
  1098. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +252 -0
  1099. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -0
  1100. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +171 -0
  1101. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -0
  1102. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +239 -0
  1103. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -0
  1104. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts +1 -1
  1105. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  1106. package/dist/esm/security/authorizations/roles.shared.defaults.js +6 -1
  1107. package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
  1108. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +12 -3
  1109. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  1110. package/dist/esm/security/authorizations/roles.shared.schemas.js +15 -1
  1111. package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
  1112. package/dist/esm/security/authorizations/roles.shared.utils.d.ts +133 -0
  1113. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -0
  1114. package/dist/esm/security/authorizations/roles.shared.utils.js +218 -0
  1115. package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -0
  1116. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
  1117. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js +1 -1
  1118. package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
  1119. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +47 -0
  1120. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -0
  1121. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +228 -0
  1122. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -0
  1123. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +46 -0
  1124. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -0
  1125. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +365 -0
  1126. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -0
  1127. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +192 -0
  1128. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -0
  1129. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +401 -0
  1130. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -0
  1131. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts +30 -0
  1132. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -0
  1133. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js +83 -0
  1134. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -0
  1135. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +29 -0
  1136. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -0
  1137. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +53 -0
  1138. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -0
  1139. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts +117 -0
  1140. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -0
  1141. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js +180 -0
  1142. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -0
  1143. package/dist/esm/testing/resource-config-builders.d.ts +4 -4
  1144. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  1145. package/dist/esm/testing/resource-config-builders.js +9 -2
  1146. package/dist/esm/testing/resource-config-builders.js.map +1 -1
  1147. package/dist/esm/testing.d.ts +1 -1
  1148. package/dist/esm/testing.d.ts.map +1 -1
  1149. package/dist/esm/testing.js +1 -1
  1150. package/dist/esm/testing.js.map +1 -1
  1151. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts +76 -0
  1152. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -0
  1153. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js +72 -0
  1154. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -0
  1155. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +28 -17
  1156. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  1157. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +43 -4
  1158. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
  1159. package/dist/esm/users/anonymous-users.shared.schema.d.ts +19 -12
  1160. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  1161. package/dist/esm/users/anonymous-users.shared.schema.js +68 -4
  1162. package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
  1163. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +52 -0
  1164. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -0
  1165. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +153 -0
  1166. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -0
  1167. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts +47 -17
  1168. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  1169. package/dist/esm/users/inbound-contacts.shared.schemas.js +123 -9
  1170. package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
  1171. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts +12 -12
  1172. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  1173. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js +11 -1
  1174. package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
  1175. package/dist/esm/users/user-credentials.shared.schemas.d.ts +15 -10
  1176. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  1177. package/dist/esm/users/user-credentials.shared.schemas.js +53 -9
  1178. package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
  1179. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +13 -11
  1180. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  1181. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js +24 -1
  1182. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
  1183. package/dist/esm/users/user-identity-links.shared.schemas.d.ts +22 -19
  1184. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  1185. package/dist/esm/users/user-identity-links.shared.schemas.js +107 -23
  1186. package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
  1187. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts +78 -0
  1188. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -0
  1189. package/dist/esm/users/user-preferences-reset.shared.utils.js +98 -0
  1190. package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -0
  1191. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +31 -61
  1192. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1193. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +34 -203
  1194. package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
  1195. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts +13 -14
  1196. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1197. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +66 -31
  1198. package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.map +1 -1
  1199. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +33 -60
  1200. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  1201. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js +49 -175
  1202. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
  1203. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts +13 -21
  1204. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  1205. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js +12 -119
  1206. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
  1207. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts +12 -16
  1208. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  1209. package/dist/esm/users/user-self.shared.resources-config.schemas.js +263 -115
  1210. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  1211. package/dist/esm/users/users.shared.resources-config.schemas.d.ts +13 -16
  1212. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  1213. package/dist/esm/users/users.shared.resources-config.schemas.js +376 -141
  1214. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  1215. package/dist/esm/users/users.shared.schemas.d.ts +110 -108
  1216. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  1217. package/dist/esm/users/users.shared.schemas.js +215 -19
  1218. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  1219. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1220. package/package.json +54 -27
  1221. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.d.ts +0 -37
  1222. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.d.ts.map +0 -1
  1223. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.js +0 -38
  1224. package/dist/esm/compliance/compliance-framework/compliance-frameworks.shared.schemas.js.map +0 -1
  1225. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.d.ts +0 -27
  1226. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.d.ts.map +0 -1
  1227. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.js +0 -35
  1228. package/dist/esm/external-providers/feature-bindings-policy.shared.schemas.js.map +0 -1
  1229. package/dist/esm/external-providers/feature-mapping.shared.schemas.d.ts +0 -80
  1230. package/dist/esm/external-providers/feature-mapping.shared.schemas.d.ts.map +0 -1
  1231. package/dist/esm/external-providers/feature-mapping.shared.schemas.js +0 -159
  1232. package/dist/esm/external-providers/feature-mapping.shared.schemas.js.map +0 -1
  1233. package/dist/esm/external-providers/wildo-features.shared.schemas.d.ts +0 -102
  1234. package/dist/esm/external-providers/wildo-features.shared.schemas.d.ts.map +0 -1
  1235. package/dist/esm/external-providers/wildo-features.shared.schemas.js +0 -124
  1236. package/dist/esm/external-providers/wildo-features.shared.schemas.js.map +0 -1
  1237. package/dist/esm/features/platform-capability-definitions.shared.d.ts +0 -50
  1238. package/dist/esm/features/platform-capability-definitions.shared.d.ts.map +0 -1
  1239. package/dist/esm/features/platform-capability-definitions.shared.js +0 -30
  1240. package/dist/esm/features/platform-capability-definitions.shared.js.map +0 -1
  1241. package/dist/esm/flows-actors/agents-context.shared.schemas.d.ts +0 -181
  1242. package/dist/esm/flows-actors/agents-context.shared.schemas.d.ts.map +0 -1
  1243. package/dist/esm/flows-actors/agents-context.shared.schemas.js +0 -116
  1244. package/dist/esm/flows-actors/agents-context.shared.schemas.js.map +0 -1
  1245. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.d.ts +0 -39
  1246. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.d.ts.map +0 -1
  1247. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.js +0 -113
  1248. package/dist/esm/notifications/email/email-header-footer-template.shared.resources-config.schemas.js.map +0 -1
  1249. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.d.ts +0 -63
  1250. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.d.ts.map +0 -1
  1251. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.js +0 -110
  1252. package/dist/esm/notifications/email/email-header-footer-template.shared.schemas.js.map +0 -1
  1253. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.d.ts +0 -62
  1254. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.d.ts.map +0 -1
  1255. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.js +0 -112
  1256. package/dist/esm/notifications/email/email-template.shared.resources-config.schemas.js.map +0 -1
  1257. package/dist/esm/notifications/email/email-template.shared.schemas.d.ts +0 -162
  1258. package/dist/esm/notifications/email/email-template.shared.schemas.d.ts.map +0 -1
  1259. package/dist/esm/notifications/email/email-template.shared.schemas.js +0 -189
  1260. package/dist/esm/notifications/email/email-template.shared.schemas.js.map +0 -1
  1261. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.d.ts +0 -37
  1262. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.d.ts.map +0 -1
  1263. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.js +0 -207
  1264. package/dist/esm/organizations/organization-member-invitations.shared.resources-config.schemas.js.map +0 -1
  1265. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.d.ts +0 -91
  1266. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.d.ts.map +0 -1
  1267. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.js +0 -325
  1268. package/dist/esm/resources/testing/SchemaDecoratorTestUtils.js.map +0 -1
  1269. package/dist/esm/runtime/companion-artifact-placement.shared.definitions.d.ts.map +0 -1
  1270. package/dist/esm/runtime/companion-artifact-placement.shared.definitions.js.map +0 -1
  1271. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.d.ts +0 -10
  1272. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.d.ts.map +0 -1
  1273. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.js +0 -52
  1274. package/dist/esm/security/authentications/policy/auth-policy.shared.resources-config.schemas.js.map +0 -1
  1275. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.d.ts +0 -52
  1276. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.d.ts.map +0 -1
  1277. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.js +0 -40
  1278. package/dist/esm/security/authentications/policy/auth-policy.shared.schemas.js.map +0 -1
  1279. package/dist/esm/testing/schema-decorator-utils.d.ts +0 -91
  1280. package/dist/esm/testing/schema-decorator-utils.d.ts.map +0 -1
  1281. package/dist/esm/testing/schema-decorator-utils.js +0 -325
  1282. package/dist/esm/testing/schema-decorator-utils.js.map +0 -1
@@ -1,5 +1,11 @@
1
1
  import { z } from "zod";
2
- import { ResourceOperationRiskLevel } from "../../resources/resources.shared.schemas.js";
2
+ import { PersonalDataCategory } from "../privacy/personal-data-category.shared.schemas.js";
3
+ import { ResourceOperationRiskLevel, ResourceOperationVariantType } from "../../resources/resources.shared.schemas.js";
4
+ import { CoreResourceOperation } from "../../resources/resources.shared.core.definitions.js";
5
+ import { PlatformAccessGrantAutoApprovalReason, PlatformAccessGrantLifecycleTransition, PlatformAccessGrantStatus, } from "../../security/authorizations/platform-access-grants.shared.schemas.js";
6
+ import { ExecutionContext_ExecutionType } from "../../runtime/execution-context.shared.schemas.js";
7
+ import { AuthScopeType, SsoConnectionType, } from "../../security/authentications/authentication.shared.schemas.js";
8
+ import { WebhookEndpointProbeOutcome } from "../../notifications/m2m/webhook-config.shared.schemas.js";
3
9
  export var CoreAuditableEventType;
4
10
  (function (CoreAuditableEventType) {
5
11
  // Authentication Events
@@ -8,28 +14,139 @@ export var CoreAuditableEventType;
8
14
  CoreAuditableEventType["USER_LOGIN_FAILED"] = "user_login_failed";
9
15
  CoreAuditableEventType["USER_ACCOUNT_LOCKED"] = "user_account_locked";
10
16
  CoreAuditableEventType["USER_PASSWORD_CHANGED"] = "user_password_changed";
17
+ // audit-event-unemitted: superseded by the per-METHOD events, which is what the MFA services
18
+ // actually emit — `USER_MFA_SETUP_STARTED` / `USER_MFA_SETUP_COMPLETED` on enrolment and
19
+ // `USER_TOTP_DISABLED` on removal. A coarse "MFA enabled/disabled" pair cannot say WHICH factor
20
+ // changed, and a user with TOTP plus a passkey makes that distinction the whole question. Kept
21
+ // rather than deleted because a future factor-agnostic rollup is a plausible SIEM convenience;
22
+ // it must not be emitted ALONGSIDE the per-method events without deciding which is canonical.
11
23
  CoreAuditableEventType["USER_MFA_ENABLED"] = "user_mfa_enabled";
24
+ // audit-event-unemitted: see USER_MFA_ENABLED — `USER_TOTP_DISABLED` is the emitted event.
12
25
  CoreAuditableEventType["USER_MFA_DISABLED"] = "user_mfa_disabled";
26
+ // audit-event-unemitted: expiry is PASSIVE — a token simply ages out, so there is no moment for
27
+ // anyone to observe. Emitting it would require polling every live session, and would produce one
28
+ // row per session per lifetime: the highest-volume, lowest-signal stream in the trail. The
29
+ // session endings that carry intent are already covered (`USER_LOGOUT`, and the token-revocation
30
+ // events). Deliberately declared-and-unwired rather than deleted, because a future
31
+ // idle-timeout/forced-expiry feature — where expiry IS an act someone triggers — is exactly what
32
+ // it should name.
13
33
  CoreAuditableEventType["USER_SESSION_EXPIRED"] = "user_session_expired";
34
+ // Machine (non-human) Authentication Events — api-key / OAuth-client / exchanged client-credentials
35
+ // token resolving to an ORGANIZATION_MACHINE / APPLICATION_MACHINE principal. The credential
36
+ // provenance (authMethod + credentialId) + scope ride the typed eventData.
37
+ CoreAuditableEventType["MACHINE_AUTH_SUCCESS"] = "machine_auth_success";
38
+ CoreAuditableEventType["MACHINE_AUTH_FAILED"] = "machine_auth_failed";
39
+ // Machine RESOURCE-ACCESS event — the token-USE twin of MACHINE_AUTH_SUCCESS (token-MINT). Emitted
40
+ // per external request when a machine principal exercises an audience-bound resource-server surface
41
+ // (A2A `message/send`, MCP `tools/call`, …). MACHINE_AUTH_SUCCESS fires once at `/oauth/token` and
42
+ // is low-volume; MACHINE_ACCESS lets an org SIEM see WHAT a machine did, not just that it authed.
43
+ CoreAuditableEventType["MACHINE_ACCESS"] = "machine_access";
14
44
  // User Lifecycle Events
45
+ // audit-event-unemitted: this operation now leaves evidence as a generic
46
+ // `RESOURCE_OPERATION_PERFORMED` row, which carries strictly MORE than this member could — the
47
+ // operation identity triple, the actor's roles as they stood, the top-level `correlationId` that
48
+ // groups a cascade, and before/after values for `.isAuditEvidence()` fields. Wiring this one too would
49
+ // write two rows for one action. Kept rather than deleted: a purpose-built event is still the
50
+ // right shape if this verb ever needs a payload the generic row cannot reconstruct (the standing
51
+ // precedent is `USER_APP_ROLES_CHANGED`, which carries the `requestedRoles` set the role-ceiling
52
+ // gate measured — something a before/after diff cannot recover).
15
53
  CoreAuditableEventType["USER_CREATED"] = "user_created";
54
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
16
55
  CoreAuditableEventType["USER_UPDATED"] = "user_updated";
17
56
  CoreAuditableEventType["USER_DELETED"] = "user_deleted";
57
+ // Application-Role Administration — the APPLICATION-scope twin of
58
+ // ORGANIZATION_MEMBER_ROLE_CHANGED. `User.appRoles` IS the principal's live application authority
59
+ // (it is read back into `initiatorRoles` on their very next request), so every change to it is an
60
+ // access-control decision that must leave evidence. Emitted by the USERS role-administration write
61
+ // paths (assign_roles / revoke_roles and the core CREATE/UPDATE that can rewrite the array), never
62
+ // for an update that leaves `appRoles` untouched.
63
+ // assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE — evidence of privilege grant/revocation.
64
+ CoreAuditableEventType["USER_APP_ROLES_CHANGED"] = "user_app_roles_changed";
65
+ // The application booted with NO administratively usable super-administrator — a state the write
66
+ // guards refuse to create, so its presence means it arrived some other way: a direct database
67
+ // edit, a restore from a backup taken mid-erasure, a seed that authored no administrator, or a
68
+ // role-table reconfiguration that changed which roles confer super-admin under an existing
69
+ // population. Reported at startup, never fatal (a fresh application legitimately boots with no
70
+ // users at all before its first administrator is seeded or registers).
71
+ // assurance-control: WILDO.ACCESS.ADMINISTRATIVE_CONTINUITY — evidence that the application has no
72
+ // accountable administrative principal, which is unrecoverable in-product once reached.
73
+ CoreAuditableEventType["APPLICATION_SUPER_ADMIN_FLOOR_BREACHED"] = "application_super_admin_floor_breached";
74
+ /**
75
+ * A tenant was left with no administratively usable owner by an action that was ALLOWED to proceed.
76
+ *
77
+ * The organization-scope twin of {@link APPLICATION_SUPER_ADMIN_FLOOR_BREACHED}, and unlike it this
78
+ * one HAS an actor: it is emitted when a user lifecycle transition (typically a suspension) removes
79
+ * the last usable owner of a tenant. That write is deliberately not refused — suspension is usually
80
+ * incident response, and blocking it would mean an operator cannot lock out a compromised owner
81
+ * without first transferring ownership using the tenant the attacker controls.
82
+ *
83
+ * Because the action proceeds, this record is the ENTIRE control. It is not decoration.
84
+ */
85
+ CoreAuditableEventType["ORGANIZATION_OWNER_FLOOR_BREACHED"] = "organization_owner_floor_breached";
18
86
  // Organization Lifecycle Events
87
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
19
88
  CoreAuditableEventType["ORGANIZATION_CREATED"] = "organization_created";
89
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
20
90
  CoreAuditableEventType["ORGANIZATION_UPDATED"] = "organization_updated";
21
91
  CoreAuditableEventType["ORGANIZATION_DELETED"] = "organization_deleted";
92
+ /** The tenant was MARKED for deletion (soft-delete). Its access dies here; its data dies at the purge. */
93
+ CoreAuditableEventType["ORGANIZATION_DELETION_REQUESTED"] = "organization_deletion_requested";
94
+ /** A pending tenant deletion was cancelled inside the retention window. */
95
+ CoreAuditableEventType["ORGANIZATION_RESTORED"] = "organization_restored";
96
+ /** The tenant was administratively HALTED. Confers no authority while suspended. */
97
+ CoreAuditableEventType["ORGANIZATION_SUSPENDED"] = "organization_suspended";
98
+ /** A halted or expired tenant was returned to normal operation. */
99
+ CoreAuditableEventType["ORGANIZATION_ACTIVATED"] = "organization_activated";
100
+ /**
101
+ * A governed lifecycle transition changed a subject's `status` — membership suspension and
102
+ * reactivation, administrative user suspension, self-service account deactivation.
103
+ *
104
+ * ONE event type rather than five near-identical ones, because the five verbs it serves share an
105
+ * identical data shape: a subject, a from→to status pair, an optional caller reason, and an
106
+ * optional automatic-reactivation deadline. `resourceType` + `operationIdentifier` fully
107
+ * discriminate which verb ran, so splitting would produce five schemas differing only in their
108
+ * literal and force a reviewer asking "show me every suspension" to union five queries.
109
+ *
110
+ * Deliberately distinct from {@link ORGANIZATION_SUSPENDED} / {@link ORGANIZATION_ACTIVATED},
111
+ * which are NOT collapsed into this: tenant transitions carry domain facts these do not
112
+ * (`revokedUserTypeCount` / `regrantedUserTypeCount` — the platform-wide reach of halting a
113
+ * tenant), so they are genuinely different events rather than the same event on another resource.
114
+ */
115
+ CoreAuditableEventType["RESOURCE_STATUS_TRANSITION_PERFORMED"] = "resource_status_transition_performed";
22
116
  // Organization Member Events
117
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
23
118
  CoreAuditableEventType["ORGANIZATION_MEMBER_INVITED"] = "organization_member_invited";
119
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
24
120
  CoreAuditableEventType["ORGANIZATION_MEMBER_JOINED"] = "organization_member_joined";
121
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
25
122
  CoreAuditableEventType["ORGANIZATION_MEMBER_UPDATED"] = "organization_member_updated";
26
123
  CoreAuditableEventType["ORGANIZATION_MEMBER_ROLE_CHANGED"] = "organization_member_role_changed";
124
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
27
125
  CoreAuditableEventType["ORGANIZATION_MEMBER_STATUS_CHANGED"] = "organization_member_status_changed";
28
126
  CoreAuditableEventType["ORGANIZATION_MEMBER_REMOVED"] = "organization_member_removed";
127
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
29
128
  CoreAuditableEventType["ORGANIZATION_NOTIFICATIONS_UPDATED"] = "organization_notifications_updated";
129
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
30
130
  CoreAuditableEventType["ORGANIZATION_PREFERENCES_UPDATED"] = "organization_preferences_updated";
131
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
31
132
  CoreAuditableEventType["ORGANIZATION_PROFILE_UPDATED"] = "organization_profile_updated";
133
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
32
134
  CoreAuditableEventType["ORGANIZATION_UNIT_UPDATED"] = "organization_unit_updated";
135
+ // Per-unit role assignment — the NARROWED twin of ORGANIZATION_MEMBER_ROLE_CHANGED.
136
+ // `OrganizationUnitMember.role` became live authority when `appendUnitScopedRoles` began emitting
137
+ // it into `initiatorRoles` as a unit-narrowed entry, so assigning or re-assigning it is an
138
+ // access-control decision on the same footing as the organization-wide array — it just confers
139
+ // inside ONE unit rather than across the tenant. Distinct from ORGANIZATION_UNIT_UPDATED, which is
140
+ // ORG_MANAGEMENT record-keeping about the unit itself and confers nothing.
141
+ // assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE — evidence of privilege grant/revocation.
142
+ CoreAuditableEventType["ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED"] = "organization_unit_member_role_changed";
143
+ // Revocation of a per-unit role assignment — the closing half of
144
+ // ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED. Deleting an assignment row IS the revocation: the row
145
+ // exists only to confer a role, so unlike ORGANIZATION_MEMBER_REMOVED (where losing authority is a
146
+ // consequence of leaving the directory) there is no non-authorization reading of this event.
147
+ // Without it the trail shows unit privileges being granted and never removed.
148
+ // assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE — evidence of privilege revocation.
149
+ CoreAuditableEventType["ORGANIZATION_UNIT_MEMBER_REMOVED"] = "organization_unit_member_removed";
33
150
  // SSO Authentication Events
34
151
  CoreAuditableEventType["USER_SSO_LOGIN"] = "user_sso_login";
35
152
  CoreAuditableEventType["USER_SSO_LOGIN_FAILED"] = "user_sso_login_failed";
@@ -38,7 +155,28 @@ export var CoreAuditableEventType;
38
155
  // Organization Security Management Events
39
156
  CoreAuditableEventType["ORGANIZATION_SSO_CONFIGURATION_CHANGED"] = "organization_sso_configuration_changed";
40
157
  CoreAuditableEventType["ORGANIZATION_SIEM_EXPORT_CONFIGURED"] = "organization_siem_export_configured";
158
+ // Application Security Configuration Events
159
+ // The per-user-type authentication policy (`userTypes.<type>.auth` — MFA, password, and lockout
160
+ // requirements) is STATIC application configuration authored in code and taken into effect at
161
+ // backend startup. A change to it — most consequentially a WEAKENING such as turning MFA off — is
162
+ // a security-posture decision that otherwise leaves no product-side record (only source history).
163
+ // Emitted at boot, by the system, when the resolved policy snapshot differs from the last one the
164
+ // trail recorded for the application. Distinct from ORGANIZATION_SSO_CONFIGURATION_CHANGED, which
165
+ // is a per-tenant runtime edit by a human admin; this is the application-wide authored baseline
166
+ // and has no human actor at boot (the "who" lives in the deployment/source history).
167
+ // assurance-control: WILDO.IDENTITY.SESSION_ASSURANCE — a change to the authentication assurance
168
+ // requirements (MFA / password / lockout) must be attributable and evidenced.
169
+ CoreAuditableEventType["APPLICATION_AUTH_POLICY_CHANGED"] = "application_auth_policy_changed";
170
+ // Outbound M2M Webhook Events
171
+ // An admin firing `webhookConfig.testEndpoint` makes the platform emit a signed HTTP
172
+ // request to an operator-supplied URL. That is an outbound-traffic primitive reachable
173
+ // from an authenticated admin surface, so every attempt — reachable or not — is recorded
174
+ // with the actor, the scope, and the destination host.
175
+ // assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — outbound connection initiated from an
176
+ // administrative surface is attributable and monitorable.
177
+ CoreAuditableEventType["WEBHOOK_ENDPOINT_TEST_DISPATCHED"] = "webhook_endpoint_test_dispatched";
41
178
  // SCIM Directory Provisioning Events
179
+ // audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
42
180
  CoreAuditableEventType["SCIM_TOKEN_CREATED"] = "scim_token_created";
43
181
  CoreAuditableEventType["SCIM_TOKEN_REVOKED"] = "scim_token_revoked";
44
182
  CoreAuditableEventType["SCIM_TOKEN_GENERATED"] = "scim_token_generated";
@@ -51,6 +189,15 @@ export var CoreAuditableEventType;
51
189
  // Password Reset Events (H5)
52
190
  CoreAuditableEventType["USER_PASSWORD_RESET_REQUESTED"] = "user_password_reset_requested";
53
191
  CoreAuditableEventType["USER_PASSWORD_RESET_COMPLETED"] = "user_password_reset_completed";
192
+ /**
193
+ * An ADMINISTRATOR compelled a credential reset on another user's account.
194
+ *
195
+ * Deliberately distinct from `USER_PASSWORD_RESET_REQUESTED`, which records a SELF-SERVICE
196
+ * request and carries no actor: reusing it for an admin action would attribute the reset to
197
+ * the account owner, so the audit trail would name the wrong human for a privileged act. This
198
+ * event names both the actor and the target, and records the operator's documented reason.
199
+ */
200
+ CoreAuditableEventType["USER_PASSWORD_RESET_FORCED"] = "user_password_reset_forced";
54
201
  // Registration & Verification Events (H5)
55
202
  CoreAuditableEventType["USER_REGISTERED"] = "user_registered";
56
203
  CoreAuditableEventType["USER_EMAIL_VERIFIED"] = "user_email_verified";
@@ -94,11 +241,248 @@ export var CoreAuditableEventType;
94
241
  // One-Off Session Events (W7.3b)
95
242
  CoreAuditableEventType["ONE_OFF_TOKEN_CREATED"] = "one_off_token_created";
96
243
  CoreAuditableEventType["ONE_OFF_TOKEN_EXCHANGED"] = "one_off_token_exchanged";
244
+ /** revocation-B1: a super-admin cancelled an un-exchanged one-off (impersonation) session token. */
245
+ CoreAuditableEventType["ONE_OFF_TOKEN_REVOKED"] = "one_off_token_revoked";
246
+ // Cross-Frontend Handoff Events (cross-app-jwt-propagation Step 2)
247
+ CoreAuditableEventType["USER_CROSS_FRONTEND_HANDOFF_ISSUED"] = "user_cross_frontend_handoff_issued";
97
248
  // Emergency Access Events
98
249
  CoreAuditableEventType["EMERGENCY_ACCESS_USED"] = "emergency_access_used";
99
250
  // Field Access Events
100
251
  CoreAuditableEventType["FIELD_ACCESS"] = "field_access";
252
+ // Resource-Operation Events — the OPERATION-triggered twin of FIELD_ACCESS.
253
+ //
254
+ // FIELD_ACCESS answers "a decorated field left the system"; it is triggered by a RESPONSE FIELD,
255
+ // so an operation whose response carries no decorated field is invisible to it. Repo-wide, that
256
+ // trigger is declared on FOUR fields (three secret families, CREATE-only), which left every other
257
+ // operation in an 83-resource catalogue emitting nothing at all — including role changes,
258
+ // suspensions, credential deletion and tenant deletion.
259
+ //
260
+ // This event answers the different question: "this OPERATION was performed, by whom, on what,
261
+ // with what effect". It is emitted for every HIGH / CRITICAL operation variant automatically
262
+ // (`riskLevel` is already the framework's canonical danger axis — it drives MCP destructive
263
+ // hints, frontend danger-zone placement and CRITICAL typed-confirmation), and for any variant
264
+ // that opts in declaratively via `auditableEvent`.
265
+ //
266
+ // It is the FLOOR beneath the purpose-built events, never their replacement: a verb with its own
267
+ // event (e.g. USER_APP_ROLES_CHANGED, which carries the `requestedRoles` set the role-ceiling
268
+ // gate was measured against — something a generic before/after diff cannot reconstruct) emits
269
+ // that one and suppresses this.
270
+ //
271
+ // assurance-control: WILDO.AUDIT.SECURITY_EVENT — privileged actions on
272
+ // resources are attributable, and the authorization effect of each is reconstructable.
273
+ CoreAuditableEventType["RESOURCE_OPERATION_PERFORMED"] = "resource_operation_performed";
274
+ // The REFUSAL twin of RESOURCE_OPERATION_PERFORMED — the other half of "record access decisions".
275
+ //
276
+ // Emitted PRE-DISPATCH from the authorizer, not from the post-commit lane, because a refused
277
+ // operation never reaches that lane. Without this event a refused HIGH/CRITICAL action — a denied
278
+ // role change, a blocked suspension, a rejected credential rotation — leaves NO evidence at all,
279
+ // so an auditor cannot distinguish "nobody attempted it" from "someone attempted it and was
280
+ // stopped". Repeated denials are also the signature of an attack in progress.
281
+ //
282
+ // ## Not an authentication failure
283
+ //
284
+ // USER_LOGIN_FAILED / MACHINE_AUTH_FAILED answer "you are not who you claim to be" (AUTHENTICATION).
285
+ // This answers "you are who you claim to be, and you may not do this" (AUTHORIZATION). The two are
286
+ // deliberately distinct event types in distinct categories; neither is overloaded onto the other.
287
+ //
288
+ // ## No risk floor, unlike the success twin
289
+ //
290
+ // RESOURCE_OPERATION_PERFORMED fires only at HIGH/CRITICAL because a SUCCESSFUL low-risk read is
291
+ // routine business (371 of the 551 API-reachable variants are reads). A DENIED read is never
292
+ // routine — it is the canonical reconnaissance signal. A risk floor here would exclude 100% of
293
+ // denied reads while not bounding attacker volume at all (the attacker picks the endpoint, so a
294
+ // HIGH verb is exactly as cheap to hammer as a LOW one). Volume is bounded by per-principal
295
+ // dedup instead — see `AuditableEvent_ResourceOperationDenied_EventDataSchema`.
296
+ //
297
+ // Severity is WARNING, matching its AUTHENTICATION twins rather than varying with `riskLevel`:
298
+ // severity is a pure function of event type everywhere in this map (and is re-derived
299
+ // independently by the SIEM dispatcher), so danger grading rides the row's `riskLevel` field.
300
+ //
301
+ // assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — access-control decisions are
302
+ // recorded, including the negative decisions, and repeated refusals are detectable.
303
+ CoreAuditableEventType["RESOURCE_OPERATION_DENIED"] = "resource_operation_denied";
304
+ CoreAuditableEventType["CROSS_TENANT_ADMINISTRATIVE_ACCESS"] = "cross_tenant_administrative_access";
305
+ CoreAuditableEventType["PLATFORM_ACCESS_GRANT_LIFECYCLE"] = "platform_access_grant_lifecycle";
306
+ /**
307
+ * An operator enumerated an APPLICATION-WIDE directory — a collection read that is deliberately
308
+ * not confined to any one tenant.
309
+ *
310
+ * ## Why this is not {@link CROSS_TENANT_ADMINISTRATIVE_ACCESS}
311
+ *
312
+ * That event answers "an operator reached a ROW belonging to a tenant they are not a member of",
313
+ * and it is emitted after comparing a FETCHED row's organization against the caller's role
314
+ * entries. A directory read has no row and no target tenant — the whole point is that it spans
315
+ * all of them — so there is nothing for that comparison to consume. Merging the two would put
316
+ * two different questions behind one event type and make the existing one's `targetOrganizationId`
317
+ * meaningless on half its rows. Closed vocabularies do not merge.
318
+ *
319
+ * ## Why it exists at all
320
+ *
321
+ * The reach is INTENDED and declared (`users | list | admin` is documented as "admin-gated global
322
+ * user listing"), and it cannot be governed by the platform-access-grant mechanism: that admission
323
+ * requires a usable grant for a TARGET tenant, and a collection call has none. So prevention is
324
+ * structurally unavailable and EVIDENCE is the control that remains — which is exactly what
325
+ * `.claude/rules/administrative-continuity-floors.md` asks for on a sanctioned reach: "every
326
+ * crossing is NAMED in the trail". Before this event, an operator could enumerate every user's
327
+ * email across every tenant and leave nothing behind.
328
+ *
329
+ * INFO, not WARNING: unlike its cross-tenant sibling this is an ordinary, expected administrative
330
+ * read on a surface built for it. The subset worth escalating is selected by a SIEM rule on
331
+ * `resourceType` + `returnedCount`, both of which ride the payload.
332
+ *
333
+ * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — an unconfined administrative read
334
+ * of application-wide data is recorded with its actor, surface and size.
335
+ */
336
+ CoreAuditableEventType["PLATFORM_DIRECTORY_ACCESS"] = "platform_directory_access";
337
+ // System-Context (ACL-bypassing) Access Events
338
+ // Emitted whenever a server-internal `readAsSystem` / `listAsSystem` call
339
+ // reads a resource with a synthesised super-admin context, bypassing the
340
+ // caller's scope + role ACL. Classified by default as DATA_ACCESS / INFO
341
+ // (an expected, authorized internal read — not an anomaly).
342
+ // USERLESS BUT NOT UNATTRIBUTED (since 2026-07-31): there is no human to name —
343
+ // the door synthesises its own super-admin context — but `eventData.performedByRuntime`
344
+ // records WHICH RUNTIME exercised it (the application backend, a named minion, …).
345
+ // Without that, a cross-tenant read by a background digital worker is indistinguishable
346
+ // from a data seed or a lifecycle batch. Runtime attribution is deliberately a weaker,
347
+ // honest claim than user attribution and must never be read as one.
348
+ CoreAuditableEventType["SYSTEM_CONTEXT_READ"] = "system_context_read";
349
+ // The MUTATION twin: emitted whenever a server-internal `createAsSystem` /
350
+ // `updateAsSystem` / `updateManyAsSystem` call writes a resource with a
351
+ // synthesised super-admin context, bypassing the caller's scope + role ACL
352
+ // (e.g. registration persisting credentials). A MUTATION under an ACL bypass
353
+ // is more sensitive than a read, so it is audited as its own distinct event
354
+ // rather than folded into SYSTEM_CONTEXT_READ.
355
+ CoreAuditableEventType["SYSTEM_CONTEXT_WRITE"] = "system_context_write";
356
+ // Retained-Data (Impersonalization) Access Events
357
+ // Emitted when a privileged SEE-THROUGH read reveals RETAINED (impersonalized-and-retained) records
358
+ // that the default retention hide-predicate keeps hidden. SYSTEM_CONTEXT_READ names only the RUNTIME
359
+ // that acted; this read is HUMAN-ATTRIBUTED (a super-admin / COMPLIANCE_AUDITOR) and carries a REQUIRED reason —
360
+ // a compliance-grade access record over scrubbed personal data. Strictly read-only. Classified
361
+ // DATA_ACCESS / WARNING (an authorized-but-elevated privileged access, not an anomaly ⇒ not CRITICAL).
362
+ CoreAuditableEventType["RETAINED_DATA_ACCESS"] = "retained_data_access";
363
+ // A DATA SUBJECT EXPORT was assembled and handed out — everything the framework holds about one
364
+ // person, gathered across their whole relationship graph (GDPR Art. 15 access / Art. 20
365
+ // portability). Deliberately NOT folded into SYSTEM_CONTEXT_READ: that event names only the
366
+ // RUNTIME that acted and carries no notion of a subject, a purpose, or what a bundle contained,
367
+ // so it cannot answer the question a regulator actually asks — "who exported whose data, when,
368
+ // and what was in it?". The four routed export operations this capability replaced emitted
369
+ // NOTHING at all, which is the gap this closes. Classified DATA_ACCESS / WARNING: an authorized
370
+ // but maximally-sensitive disclosure, not an anomaly.
371
+ CoreAuditableEventType["SUBJECT_DATA_EXPORT"] = "subject_data_export";
372
+ // A resource LISTING was exported to a file (CSV/JSON) by an operator. Distinct from
373
+ // SUBJECT_DATA_EXPORT, which answers a data subject's own right over their own data: this one is
374
+ // an authorized operator taking rows they can already read and carrying them OUT of the system, so
375
+ // the questions it must answer are "which resource, how many rows, and was it the page they were
376
+ // looking at or the whole table". Classified DATA_ACCESS / INFO with a per-emit `riskLevel` — see
377
+ // the eventData schema for why the severity is static and the risk is not.
378
+ CoreAuditableEventType["COLLECTION_DATA_EXPORT"] = "collection_data_export";
379
+ // Rows were read THROUGH an HTTP-API resource binding — data left an EXTERNAL system
380
+ // (an enterprise's Odoo/SAP/…) via the engine's read-through repository (ETL plan, D8/R6).
381
+ // Deliberately NOT folded into the neighbors: SYSTEM_CONTEXT_READ names a runtime acting on
382
+ // WILDO-owned rows and knows nothing of a foreign system; COLLECTION_DATA_EXPORT is rows
383
+ // CARRIED OUT of the system by an operator, while this is rows BROUGHT IN from a system the
384
+ // platform does not own — the question a reviewer asks is "who reached into which external
385
+ // system, through which provider, for which entity, and how much came back". Attribution
386
+ // carries the REAL initiating user even under a SERVICE_PRINCIPAL binding (R12 — the
387
+ // credential-sharing-as-a-service failure this vocabulary exists to prevent). One event per
388
+ // read-family OPERATION execution (a paginated list and its count are ONE access), emitted at
389
+ // the adapter — the only tier that witnesses EVERY remote access, including repository-direct
390
+ // probes the services tier never sees. Classified DATA_ACCESS / INFO: routine, authorized
391
+ // operation — the value is the queryable trail, not an alarm.
392
+ CoreAuditableEventType["HTTP_API_READ_THROUGH_ACCESS"] = "http_api_read_through_access";
393
+ // A subject erasure INVOKED the declared external-erasure operation of an HTTP_API-bound
394
+ // resource (ETL D6 stance 6b) — rows linked to the erased subject were DELETED in a system the
395
+ // platform does not own (OData canonical DELETE / Odoo `unlink` / a declared REST_JSON call).
396
+ // The first OUTBOUND WRITE on the read-through plane, landing WITH its mechanism per the D8
397
+ // narrowing. Distinct from HTTP_API_READ_THROUGH_ACCESS (rows brought IN) and from
398
+ // SYSTEM_CONTEXT_WRITE (a trusted write to WILDO-owned rows): the reviewer question here is
399
+ // "which subject's rows were deleted in which external system, through which provider, and how
400
+ // many". Classified USER_LIFECYCLE / INFO: the sanctioned mechanics of a data-protection
401
+ // request, not an anomaly — the erasure report is the receipt; this is the queryable trail.
402
+ CoreAuditableEventType["HTTP_API_EXTERNAL_ERASURE"] = "http_api_external_erasure";
403
+ // A subject erasure COMPLETED while rows linked to the subject remain LIVE in an HTTP_API-bound
404
+ // external system, on the controller's explicit per-request acknowledgement (ETL D6 stance 6c,
405
+ // `acknowledgeHttpApiNonErasure`). The record IS the control (the same doctrine as the two
406
+ // administrative floors): no downstream check can second-guess a controller acting within GDPR
407
+ // Art. 17(3) grounds, so what the framework owes is a loud, queryable record of the hole — the
408
+ // subject, the resource, the provider, and how many rows remained (when countable). Classified
409
+ // USER_LIFECYCLE / CRITICAL: one event per acknowledged resource per erasure, never a standing
410
+ // posture.
411
+ CoreAuditableEventType["HTTP_API_NON_ERASURE_ACKNOWLEDGED"] = "http_api_non_erasure_acknowledged";
412
+ // ── OAuth2 / OIDC Provider Events (Wildo AS the authorization server) ──
413
+ // Distinct from the `OAUTH2_*` family above, which records Wildo CONSUMING an
414
+ // EXTERNAL social OAuth provider. These record the app-issued OAuth2/OIDC provider
415
+ // surface (`/oauth/authorize`, `/oauth/token`, `/oauth/authorize/decision`,
416
+ // `/oauth/revoke`) — a third party gaining, or being refused, user-acting access.
417
+ // Each maps to a Wildo assurance objective at the emit site (`assurance-control:` marker).
418
+ /** A user-delegated `authorization_code` access token was minted for a third-party client
419
+ * (the client may now act AS the user at the bound A2A/MCP resource) — the flagship grant. */
420
+ CoreAuditableEventType["OAUTH_DELEGATED_TOKEN_ISSUED"] = "oauth_delegated_token_issued";
421
+ /** A user APPROVED an interactive consent request — the client is authorized for this authorize flow. */
422
+ CoreAuditableEventType["OAUTH_CONSENT_GRANTED"] = "oauth_consent_granted";
423
+ /** A user DENIED an interactive consent request — access refused (protective, benign). */
424
+ CoreAuditableEventType["OAUTH_CONSENT_DENIED"] = "oauth_consent_denied";
425
+ /** A durable "remember this app" consent grant was created/updated — persistent delegated authority. */
426
+ CoreAuditableEventType["OAUTH_CONSENT_GRANT_PERSISTED"] = "oauth_consent_grant_persisted";
427
+ /**
428
+ * An ANONYMOUS caller created an OAuth client identity through RFC 7591 dynamic registration.
429
+ * The only write in this application reachable without any credential, so every occurrence is
430
+ * evidence: the row it creates is durable, and the population of these rows is what an operator
431
+ * needs to be able to review and revoke.
432
+ */
433
+ CoreAuditableEventType["OAUTH_DYNAMIC_CLIENT_REGISTERED"] = "oauth_dynamic_client_registered";
434
+ /**
435
+ * A URL-formatted `client_id` (CIMD) was REFUSED at the authorize endpoint.
436
+ *
437
+ * Auditable because the refusal reasons are not all equal: `HOST_NOT_ALLOWED` is a
438
+ * misconfiguration, while `SSRF_TARGET_REFUSED` is an unauthenticated stranger trying to make
439
+ * this server fetch an address only it can reach. Both arrive at the same endpoint from the same
440
+ * kind of caller, so only the reason distinguishes them — and a spike in either is a thing an
441
+ * operator must be able to alert on.
442
+ */
443
+ CoreAuditableEventType["OAUTH_CIMD_CLIENT_REFUSED"] = "oauth_cimd_client_refused";
444
+ /** A user token was rotated via the provider `refresh_token` grant (`/oauth/token`). */
445
+ CoreAuditableEventType["OAUTH_TOKEN_REFRESHED"] = "oauth_token_refreshed";
446
+ /** A token was revoked via `/oauth/revoke` (RFC 7009). */
447
+ CoreAuditableEventType["OAUTH_TOKEN_REVOKED"] = "oauth_token_revoked";
448
+ /** An OIDC RP-Initiated Logout terminated the End-User's OP session at `/oauth/end-session`
449
+ * (revocation-C). Distinct from `USER_LOGOUT` (first-party self-logout) and `OAUTH_TOKEN_REVOKED`
450
+ * (RFC 7009 token revocation): this ends a SESSION on a relying party's behalf. */
451
+ CoreAuditableEventType["OAUTH_RP_INITIATED_LOGOUT"] = "oauth_rp_initiated_logout";
452
+ /** An `authorization_code` exchange was REJECTED (replay / PKCE failure / redirect mismatch / …) —
453
+ * a potential attack signal. The specific cause rides `eventData.reason`. */
454
+ CoreAuditableEventType["OAUTH_CODE_EXCHANGE_FAILED"] = "oauth_code_exchange_failed";
455
+ /** A consent DECISION was attempted by a user who is NOT the consent request's bound user (403) —
456
+ * a textbook cross-user authorization-abuse signal. */
457
+ CoreAuditableEventType["OAUTH_CONSENT_BINDING_VIOLATION"] = "oauth_consent_binding_violation";
458
+ /** Refresh-token REUSE detected → the whole token family was revoked (possible theft). Emitted by the
459
+ * refresh CALLERS (the token issuer stays audit-free by design — it surfaces a reuse signal instead). */
460
+ CoreAuditableEventType["USER_REFRESH_TOKEN_REUSE_DETECTED"] = "user_refresh_token_reuse_detected";
101
461
  })(CoreAuditableEventType || (CoreAuditableEventType = {}));
462
+ /**
463
+ * Closed vocabulary of `OAUTH_CODE_EXCHANGE_FAILED` failure causes (RFC 6749 / OAuth 2.1 / RFC 7636).
464
+ * A dedicated enum (not an inline literal union) so the emit sites, the schema, and any SIEM
465
+ * consumer share one runtime source — the project's closed-vocabulary rule.
466
+ */
467
+ export var OAuthCodeExchangeFailureReason;
468
+ (function (OAuthCodeExchangeFailureReason) {
469
+ /** The single-use code did not atomically consume — replayed, expired, or never issued. */
470
+ OAuthCodeExchangeFailureReason["CODE_REPLAY_OR_INVALID"] = "code_replay_or_invalid";
471
+ /** The consumed token was of a different consumable-token type (not an authorization code). */
472
+ OAuthCodeExchangeFailureReason["NOT_AUTHORIZATION_CODE"] = "not_authorization_code";
473
+ /** The decoded code carried no subject (userId). */
474
+ OAuthCodeExchangeFailureReason["NO_SUBJECT"] = "no_subject";
475
+ /** The redeeming `client_id` differs from the client the code was issued to. */
476
+ OAuthCodeExchangeFailureReason["CLIENT_MISMATCH"] = "client_mismatch";
477
+ /** The redeeming `redirect_uri` differs from the one bound at authorize. */
478
+ OAuthCodeExchangeFailureReason["REDIRECT_URI_MISMATCH"] = "redirect_uri_mismatch";
479
+ /** The PKCE `code_verifier` failed the bound S256 challenge (or was malformed). */
480
+ OAuthCodeExchangeFailureReason["PKCE_VERIFICATION_FAILED"] = "pkce_verification_failed";
481
+ /** The client was deactivated between authorize and redemption (redemption-window re-check). */
482
+ OAuthCodeExchangeFailureReason["CLIENT_INACTIVE"] = "client_inactive";
483
+ /** The client lost the `authorization_code` grant between authorize and redemption. */
484
+ OAuthCodeExchangeFailureReason["GRANT_TYPE_LOST"] = "grant_type_lost";
485
+ })(OAuthCodeExchangeFailureReason || (OAuthCodeExchangeFailureReason = {}));
102
486
  /** Canonical event categories — used by auditable-events, security-envelope, audit-logs. */
103
487
  export var AuditEventCategory;
104
488
  (function (AuditEventCategory) {
@@ -115,12 +499,68 @@ export var AuditEventSeverity;
115
499
  AuditEventSeverity["WARNING"] = "warning";
116
500
  AuditEventSeverity["CRITICAL"] = "critical";
117
501
  })(AuditEventSeverity || (AuditEventSeverity = {}));
118
- /** SSO connection type — shared with user-identity-links. */
119
- export var SsoConnectionType;
120
- (function (SsoConnectionType) {
121
- SsoConnectionType["SOCIAL"] = "social";
122
- SsoConnectionType["ENTERPRISE"] = "enterprise";
123
- })(SsoConnectionType || (SsoConnectionType = {}));
502
+ /**
503
+ * Why the authorizer refused an operation. A CLOSED vocabulary — the authorizer resolves exactly
504
+ * one of these per refusal, and a SOC dashboard groups by it.
505
+ *
506
+ * The distinction that matters most operationally is {@link SUBJECT_NOT_RESOLVABLE} vs. the rest:
507
+ * every other member is a caller who reached a real, visible row and was refused on roles or scope,
508
+ * whereas that one is a caller who named a row they cannot see at all — the shape of tenant
509
+ * enumeration.
510
+ */
511
+ export var ResourceOperationDenialReason;
512
+ (function (ResourceOperationDenialReason) {
513
+ /**
514
+ * No initiator identity or roles on the execution context. Fail-closed: the authorizer refuses
515
+ * rather than assuming an anonymous caller.
516
+ *
517
+ * **A backstop, not a live path — verified.** The execution context fails closed earlier and
518
+ * harder: every execution type that reaches the authorizer refuses to CONSTRUCT without
519
+ * `initiatorIds`, and the one type that permits null (`WEBHOOK_CALLBACK`) is skipped before the
520
+ * guard, since signature verification already established trust. The roles half cannot fire
521
+ * either — the context spreads `initiatorRoles`, so the only accepted value is an array.
522
+ *
523
+ * A row carrying this reason therefore means something bypassed context construction. Treat it as
524
+ * a defect signal, not routine refusal traffic.
525
+ */
526
+ ResourceOperationDenialReason["MISSING_INITIATOR"] = "missing_initiator";
527
+ /**
528
+ * The caller's organization-wide roles did not satisfy the operation's required role set, after
529
+ * role-hierarchy expansion. The everyday "you are not an admin" refusal.
530
+ */
531
+ ResourceOperationDenialReason["INSUFFICIENT_ROLES"] = "insufficient_roles";
532
+ /**
533
+ * The caller was refused against the target row's PRIMARY SCOPE — the row belongs to another
534
+ * user, organization or application than the caller is entitled to. Distinct from
535
+ * {@link INSUFFICIENT_ROLES}: the caller may hold the right role, but in the wrong tenant.
536
+ */
537
+ ResourceOperationDenialReason["SCOPE_MISMATCH"] = "scope_mismatch";
538
+ /**
539
+ * The caller reached the resource through a foreign-key path (`/assigned-to-users/{userId}/todos`)
540
+ * whose owning entity they do not control.
541
+ */
542
+ ResourceOperationDenialReason["FK_RELATIONSHIP_DENIED"] = "fk_relationship_denied";
543
+ /**
544
+ * A collection operation was refused on its PARENT scope — the caller has no access to the
545
+ * organization / application whose collection they addressed.
546
+ */
547
+ ResourceOperationDenialReason["PARENT_SCOPE_DENIED"] = "parent_scope_denied";
548
+ /**
549
+ * The named row could not be resolved for the caller: it does not exist, OR it exists and is
550
+ * invisible to the caller's scope. The authorizer **cannot distinguish these two** — and that is
551
+ * deliberate, because reporting them differently would leak the existence of out-of-scope rows.
552
+ * The refusal surfaces to the caller as NOT_FOUND (404) and that response is unchanged by this
553
+ * event; only the audit trail records that a refusal occurred.
554
+ *
555
+ * Consequently this reason is AMBIGUOUS BY CONSTRUCTION and a single occurrence proves nothing —
556
+ * a 404 for a genuinely deleted record lands here too. Its value is in the aggregate: a principal
557
+ * accumulating these against ids they never successfully read is enumerating.
558
+ *
559
+ * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — refusals are recorded without the record itself
560
+ * becoming an existence oracle.
561
+ */
562
+ ResourceOperationDenialReason["SUBJECT_NOT_RESOLVABLE"] = "subject_not_resolvable";
563
+ })(ResourceOperationDenialReason || (ResourceOperationDenialReason = {}));
124
564
  /** SSO configuration change type. */
125
565
  export var SsoConfigChangeType;
126
566
  (function (SsoConfigChangeType) {
@@ -138,6 +578,56 @@ export var SiemExportChangeType;
138
578
  SiemExportChangeType["DISABLED"] = "disabled";
139
579
  SiemExportChangeType["UPDATED"] = "updated";
140
580
  })(SiemExportChangeType || (SiemExportChangeType = {}));
581
+ /**
582
+ * Normalised MACHINE_ACCESS operation vocabulary. Transport-native method names (A2A JSON-RPC
583
+ * `message/send`, MCP `tools/call`, …) are mapped to these stable, transport-prefixed audit
584
+ * identifiers so an org SIEM reads ONE vocabulary across every external resource-server surface.
585
+ * The `<transport>_<method>` shape keeps A2A and MCP operations disambiguated in a flat stream.
586
+ */
587
+ export var MachineAccessOperation;
588
+ (function (MachineAccessOperation) {
589
+ MachineAccessOperation["A2A_MESSAGE_SEND"] = "a2a_message_send";
590
+ MachineAccessOperation["A2A_MESSAGE_STREAM"] = "a2a_message_stream";
591
+ /** Reading one task's state. Externally triggered and tenant-actionable, so it audits. */
592
+ MachineAccessOperation["A2A_TASKS_GET"] = "a2a_tasks_get";
593
+ /** Requesting cancellation of a task — a MUTATION of tenant work, audited as such. */
594
+ MachineAccessOperation["A2A_TASKS_CANCEL"] = "a2a_tasks_cancel";
595
+ /**
596
+ * Re-attaching to a task's update stream after a dropped connection.
597
+ *
598
+ * Audited like `A2A_TASKS_GET` and for the same reason: it is a READ of tenant work by an external
599
+ * principal. It deserves its own member rather than borrowing the get — a resubscribe holds a
600
+ * connection open for as long as the task runs, so in a trail the two have very different shapes,
601
+ * and collapsing them would hide a caller camping on a stream behind ordinary polling.
602
+ */
603
+ MachineAccessOperation["A2A_TASKS_RESUBSCRIBE"] = "a2a_tasks_resubscribe";
604
+ /**
605
+ * Registering a webhook the agent will POST this task's updates to.
606
+ *
607
+ * The most security-relevant of the push-notification operations and the reason all four get their
608
+ * own members: the caller is directing OUR server to make outbound requests to an address IT
609
+ * chooses, carrying credentials IT supplies. In a trail that is a different act from reading a
610
+ * task, and an operator reviewing egress needs to find every one of them without inferring it from
611
+ * a generic access row.
612
+ */
613
+ MachineAccessOperation["A2A_PUSH_NOTIFICATION_CONFIG_SET"] = "a2a_push_notification_config_set";
614
+ /** Reading back one registered webhook target. Secrets are redacted, but the URL is disclosed. */
615
+ MachineAccessOperation["A2A_PUSH_NOTIFICATION_CONFIG_GET"] = "a2a_push_notification_config_get";
616
+ /** Enumerating every webhook target registered against a task. */
617
+ MachineAccessOperation["A2A_PUSH_NOTIFICATION_CONFIG_LIST"] = "a2a_push_notification_config_list";
618
+ /** Removing a webhook target — a MUTATION, and the act that silently stops an operator's alerting. */
619
+ MachineAccessOperation["A2A_PUSH_NOTIFICATION_CONFIG_DELETE"] = "a2a_push_notification_config_delete";
620
+ /**
621
+ * Enumerating an owner's tasks (A2A 1.0 `ListTasks`).
622
+ *
623
+ * Its own member rather than borrowing `A2A_TASKS_GET`: a LIST discloses the existence and shape
624
+ * of work the caller did not name, which in a trail is a different act from reading one task an
625
+ * operator already knows about. Collapsing them would hide enumeration behind ordinary polling.
626
+ */
627
+ MachineAccessOperation["A2A_TASKS_LIST"] = "a2a_tasks_list";
628
+ MachineAccessOperation["MCP_TOOLS_LIST"] = "mcp_tools_list";
629
+ MachineAccessOperation["MCP_TOOLS_CALL"] = "mcp_tools_call";
630
+ })(MachineAccessOperation || (MachineAccessOperation = {}));
141
631
  export const AuditableEventTypeSchema = z.union([
142
632
  z.enum(CoreAuditableEventType),
143
633
  z.string()
@@ -167,6 +657,18 @@ export const AuditableEvent_User_LoginFailedEventDataSchema = z.object({
167
657
  attemptsRemaining: z.number().optional(),
168
658
  sessionId: z.string(),
169
659
  });
660
+ /**
661
+ * Which lockout mechanism tripped a `USER_ACCOUNT_LOCKED` audit — so a SOC can distinguish the two
662
+ * sources, which have different remediation: the per-SESSION progressive failed-attempt limit vs the
663
+ * per-EMAIL global rate-limit. Enum (fixed vocabulary), not a string union, per the project rule.
664
+ */
665
+ export var AccountLockoutReason;
666
+ (function (AccountLockoutReason) {
667
+ /** The per-session progressive failed-attempt limit tripped (`incrementSessionAttempts`). */
668
+ AccountLockoutReason["SESSION_ATTEMPT_LIMIT"] = "session_attempt_limit";
669
+ /** The per-email GLOBAL rate-limit lockout tripped (`checkRateLimit(GLOBAL_LOCKOUT + email)`). */
670
+ AccountLockoutReason["GLOBAL_EMAIL_RATE_LIMIT"] = "global_email_rate_limit";
671
+ })(AccountLockoutReason || (AccountLockoutReason = {}));
170
672
  export const AuditableEvent_User_AccountLockedEventDataSchema = z.object({
171
673
  eventType: z.literal(CoreAuditableEventType.USER_ACCOUNT_LOCKED),
172
674
  userId: z.string(),
@@ -176,6 +678,93 @@ export const AuditableEvent_User_AccountLockedEventDataSchema = z.object({
176
678
  ipAddress: z.string(),
177
679
  userAgent: z.string(),
178
680
  sessionId: z.string(),
681
+ /**
682
+ * Which lockout mechanism tripped this event. OPTIONAL for backward compatibility — pre-existing
683
+ * emitters and already-stored rows may omit it; new emitters set it so SOC tooling can filter
684
+ * session-limit vs global-email-limit lockouts.
685
+ */
686
+ reason: z.enum(AccountLockoutReason).optional(),
687
+ });
688
+ /**
689
+ * A machine principal (api-key / OAuth-client secret / exchanged client-credentials token) that
690
+ * successfully authenticated. Carries the credential PROVENANCE — never the raw secret. Emitted at
691
+ * the OAuth token-issuance moment (`/oauth/token`); per-request direct-secret access additionally
692
+ * carries this provenance into any FIELD_ACCESS audit row (see `audit-access-fields`).
693
+ */
694
+ export const AuditableEvent_MachineAuth_SuccessEventDataSchema = z.object({
695
+ eventType: z.literal(CoreAuditableEventType.MACHINE_AUTH_SUCCESS),
696
+ /** MachineAuthMethod value: `api_key` | `oauth_client`. */
697
+ authMethod: z.string(),
698
+ /** The ApiKey / OAuthClient row `_id` that authenticated — NEVER the raw secret. */
699
+ credentialId: z.string(),
700
+ /** Resolved machine execution type: `organization_machine` | `application_machine`. */
701
+ scopeType: z.string(),
702
+ /** organizationId (ORG machine) or applicationId (APP machine). */
703
+ scopeId: z.string().optional(),
704
+ resourceIdentifier: z.string().optional(),
705
+ operationIdentifier: z.string().optional(),
706
+ ipAddress: z.string().optional(),
707
+ });
708
+ /**
709
+ * A rejected machine-credential presentation (bad/expired/wrong-audience/wrong-scope secret or
710
+ * token, or a rate-limited source). Records the ATTEMPT — the presented credential kind + prefix,
711
+ * the target scope, and the reason — never a `credentialId` (the credential did not resolve). The
712
+ * per-source-IP brute-force signal (external-access hardening) is exactly this event stream.
713
+ */
714
+ export const AuditableEvent_MachineAuth_FailedEventDataSchema = z.object({
715
+ eventType: z.literal(CoreAuditableEventType.MACHINE_AUTH_FAILED),
716
+ /** Presented credential kind: `api_key` | `oauth_client` | `machine_token`. */
717
+ credentialKind: z.string(),
718
+ /** Human-routable secret prefix (e.g. `sk_org_` / `oc_app_`) — NEVER the full secret. Absent for token fronts. */
719
+ credentialPrefix: z.string().optional(),
720
+ /** Failure reason (e.g. `invalid_credential`, `inactive`, `aud_mismatch`, `wrong_scope`, `rate_limited`). */
721
+ reason: z.string(),
722
+ scopeType: z.string().optional(),
723
+ scopeId: z.string().optional(),
724
+ resourceIdentifier: z.string().optional(),
725
+ operationIdentifier: z.string().optional(),
726
+ ipAddress: z.string().optional(),
727
+ });
728
+ /**
729
+ * A machine principal (ORGANIZATION_MACHINE / APPLICATION_MACHINE) exercised an external
730
+ * resource-server surface (A2A `message/send`, MCP `tools/call`, …) with an already-issued,
731
+ * audience-bound token. The token-USE twin of MACHINE_AUTH_SUCCESS (token-MINT): the mint fires
732
+ * once, low-volume, at `/oauth/token`; THIS fires per external request so an org SIEM sees WHAT a
733
+ * machine did, not merely that it authenticated.
734
+ *
735
+ * Carries the credential PROVENANCE (authMethod + credentialId — never the raw secret), the ROLE
736
+ * context that authorized the access (roles are the single authorization axis — there is NO OAuth
737
+ * authorization-scope vocabulary), and the resource server + operation targeted. Emitted fire-and-
738
+ * forget at the A2A / MCP controller boundary AFTER the caller is authenticated + authorized; routed
739
+ * to the org SIEM via `routingOrgIds` (verified org for an ORGANIZATION_MACHINE; an
740
+ * APPLICATION_MACHINE has no single tenant SIEM ⇒ no per-org dispatch).
741
+ */
742
+ export const AuditableEvent_MachineAccess_EventDataSchema = z.object({
743
+ eventType: z.literal(CoreAuditableEventType.MACHINE_ACCESS),
744
+ /** MachineAuthMethod value: `api_key` | `oauth_client`. */
745
+ authMethod: z.string(),
746
+ /** The ApiKey / OAuthClient row `_id` whose token was presented — NEVER the raw secret. */
747
+ credentialId: z.string(),
748
+ /** Resolved machine execution type: `organization_machine` | `application_machine`. */
749
+ scopeType: z.string(),
750
+ /**
751
+ * TENANT scope id: organizationId (ORG machine) or applicationId (APP machine). This is the
752
+ * data-partition scope, NOT an OAuth authorization scope — that vocabulary was removed; roles are
753
+ * the single authorization axis.
754
+ */
755
+ scopeId: z.string().optional(),
756
+ /**
757
+ * The role context that authorized this access (the machine principal's roles). Roles are the
758
+ * single authorization axis; recorded so a SIEM sees the authority the access ran under.
759
+ */
760
+ roles: z.array(z.string()).optional(),
761
+ /** ResourceServerKind of the surface accessed: `a2a` | `mcp`. */
762
+ resourceServer: z.string(),
763
+ /** The resource-server audience / agent endpoint / systemRef the token was bound to and hit. */
764
+ resourceIdentifier: z.string().optional(),
765
+ /** Normalised MachineAccessOperation value (e.g. `a2a_message_send`, `mcp_tools_call`). */
766
+ operationIdentifier: z.string(),
767
+ ipAddress: z.string().optional(),
179
768
  });
180
769
  export const AuditableEvent_User_SessionExpiredEventDataSchema = z.object({
181
770
  eventType: z.literal(CoreAuditableEventType.USER_SESSION_EXPIRED),
@@ -184,6 +773,103 @@ export const AuditableEvent_User_SessionExpiredEventDataSchema = z.object({
184
773
  sessionDuration: z.number(), // minutes
185
774
  lastActivity: z.date(),
186
775
  });
776
+ /**
777
+ * A `USERS` row was hard-deleted.
778
+ *
779
+ * The identity is gone after this event, so the record must carry enough to answer "who was
780
+ * removed?" without joining back to a row that no longer exists — hence `email` alongside `userId`.
781
+ * That is a deliberate, narrow retention of an identifier inside the audit trail: an erasure that
782
+ * left no trace of having happened would defeat the purpose of the trail, and the audit store is
783
+ * itself immutable and access-controlled. Prefer `RETAIN_AND_IMPERSONALIZE` erasure
784
+ * (`eraseSubjectAsSystem`) over a hard delete wherever the retention contract allows it — this
785
+ * event exists to make the hard-delete path, which the framework still exposes to administrators
786
+ * through `USERS | DELETE`, leave evidence.
787
+ *
788
+ * `deletedBy` is the acting principal, which for the admin route is NOT the subject. Mirrors
789
+ * `AuditableEvent_Organization_DeletedEventDataSchema`.
790
+ *
791
+ * assurance-control: WILDO.DATA.SECURE_LIFECYCLE — identity destruction is a
792
+ * security-relevant event and must be attributable.
793
+ */
794
+ export const AuditableEvent_User_DeletedEventDataSchema = z.object({
795
+ eventType: z.literal(CoreAuditableEventType.USER_DELETED),
796
+ userId: z.string(),
797
+ email: z.string().optional(),
798
+ deletedBy: z.string(),
799
+ /** Roles the deleted principal held, so an auditor can see what authority was removed. */
800
+ appRoles: z.array(z.string()).optional(),
801
+ });
802
+ /**
803
+ * Application-role grant / revocation on a `USERS` row.
804
+ *
805
+ * Carries BOTH the before and after arrays rather than only the delta: an auditor reconstructing a
806
+ * principal's authority at a point in time needs the resulting set, and the delta alone cannot
807
+ * distinguish "granted a role they already held" (a no-op) from a real widening. `requestedRoles`
808
+ * is what the administrator ASKED for — for an additive grant it is the delta, for a whole-array
809
+ * rewrite through the core UPDATE it is the full authored set — which is also exactly the set the
810
+ * role-ceiling gate measured, so the record shows what was checked, not just what resulted.
811
+ *
812
+ * `reason` is the administrator's free-text justification where the operation collects one
813
+ * (`assign_roles` / `revoke_roles`); the core UPDATE path has no such field and omits it.
814
+ */
815
+ export const AuditableEvent_User_AppRolesChangedEventDataSchema = z.object({
816
+ eventType: z.literal(CoreAuditableEventType.USER_APP_ROLES_CHANGED),
817
+ /** The user whose authority changed — the SUBJECT, not the actor. */
818
+ userId: z.string(),
819
+ previousRoles: z.array(z.string()),
820
+ newRoles: z.array(z.string()),
821
+ /** The roles as AUTHORED by the caller (the set the role-ceiling gate was measured against). */
822
+ requestedRoles: z.array(z.string()),
823
+ /** Which write path produced the change — the operation identifier (`assign_roles`, `update`, …). */
824
+ operation: z.string(),
825
+ changedBy: z.string(),
826
+ reason: z.string().optional(),
827
+ });
828
+ /**
829
+ * The application has no administratively usable super-administrator.
830
+ *
831
+ * Emitted by the startup floor report, not by a write path — every write that could REACH this state
832
+ * refuses instead, so an emission here is evidence the state arrived outside the guarded paths.
833
+ *
834
+ * `conferringRoles` is recorded because the answer depends on the LIVE role table: an application
835
+ * that renames or drops a custom role carrying `inheritFrom: APP_ADMIN_SUPER_ADMIN` can breach the
836
+ * floor without any user row changing, and an auditor reading the event a month later cannot
837
+ * reconstruct which roles counted at boot without it.
838
+ */
839
+ export const AuditableEvent_Application_SuperAdminFloorBreachedEventDataSchema = z.object({
840
+ eventType: z.literal(CoreAuditableEventType.APPLICATION_SUPER_ADMIN_FLOOR_BREACHED),
841
+ /** How many administratively usable super-administrators were found (expected: 0 when emitted). */
842
+ usableSuperAdminCount: z.number(),
843
+ /** The minimum the floor requires. */
844
+ requiredUsableSuperAdminCount: z.number(),
845
+ /** The role keys that conferred super-admin at boot, resolved from the live application role table. */
846
+ conferringRoles: z.array(z.string()),
847
+ /** The user statuses that counted as administratively usable. */
848
+ usableStatuses: z.array(z.string()),
849
+ });
850
+ /**
851
+ * A tenant left unadministrable by an allowed action.
852
+ *
853
+ * Carries the tenant, the memberships that stopped counting, and WHY the action was permitted, so an
854
+ * auditor can tell a deliberate containment decision from an accident. `remainingUsableOwners` is
855
+ * recorded rather than assumed zero: the floor's minimum is configurable, and an event that hard-codes
856
+ * the consequence cannot be re-read against a changed policy.
857
+ */
858
+ export const AuditableEvent_Organization_OwnerFloorBreachedEventDataSchema = z.object({
859
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED),
860
+ /** The tenant left with no administratively usable owner. */
861
+ organizationId: z.string(),
862
+ /** The owner-conferring memberships this action removed from the population. */
863
+ reducedMemberIds: z.array(z.string()),
864
+ /** How many usable owners remain (expected: 0 when emitted). */
865
+ remainingUsableOwners: z.number(),
866
+ /** The lifecycle verb that caused it — the operator-facing "what did this". */
867
+ operationIdentifier: z.string(),
868
+ /** The subject whose deactivation triggered it. */
869
+ subjectUserId: z.string(),
870
+ /** The status the subject moved to, so a reader need not infer usability from the verb alone. */
871
+ subjectNextStatus: z.string(),
872
+ });
187
873
  // Organization Member Event Data Schemas
188
874
  export const AuditableEvent_OrganizationMember_InvitedEventDataSchema = z.object({
189
875
  eventType: z.literal(CoreAuditableEventType.ORGANIZATION_MEMBER_INVITED),
@@ -206,14 +892,128 @@ export const AuditableEvent_OrganizationMember_UpdatedEventDataSchema = z.object
206
892
  memberId: z.string(),
207
893
  changes: z.record(z.string(), z.any()),
208
894
  });
895
+ /**
896
+ * Organization-wide role grant / revocation on an `ORGANIZATION_MEMBERS` row.
897
+ *
898
+ * The ORGANIZATIONS-scope twin of {@link AuditableEvent_User_AppRolesChangedEventDataSchema}, and it
899
+ * carries the same before/after/requested triple for the same reasons: an auditor reconstructing a
900
+ * principal's authority at a point in time needs the RESULTING set, and the delta alone cannot
901
+ * distinguish "granted a role they already held" from a real widening.
902
+ *
903
+ * ## Why `requestedRoles` is not redundant with `newRoles` here
904
+ *
905
+ * It matters MORE on this resource than on the application twin. Membership CREATE runs the authored
906
+ * roles through resolution before persisting them — an organization type's `defaultMemberRole` is
907
+ * injected when the caller authored none — so "what the administrator asked for" and "what the
908
+ * member ended up holding" genuinely differ on an ordinary invite. `requestedRoles` is also exactly
909
+ * the set the role-ceiling gate measured, so the record shows what was CHECKED, not only what
910
+ * resulted. It is optional because "the caller authored no roles at all" (policy supplied them) is a
911
+ * different fact from "the caller explicitly authored an empty array", and collapsing the two would
912
+ * lose the distinction the ceiling gate itself draws.
913
+ *
914
+ * ## Why both `memberId` and `userId`
915
+ *
916
+ * `memberId` addresses the MEMBERSHIP ROW that was written; `userId` is the SUBJECT PRINCIPAL whose
917
+ * authority changed. "What could this person do on date X" is a question about the principal, and
918
+ * answering it through the row id alone requires a join that a retention sweep may already have
919
+ * removed. `AuditableEvent_OrganizationMember_RemovedEventDataSchema` carries the same pair for the
920
+ * same reason. `userId` stays optional so a degenerate row still leaves the rest of the evidence
921
+ * rather than suppressing the whole record.
922
+ */
209
923
  export const AuditableEvent_OrganizationMember_RoleChangedEventDataSchema = z.object({
210
924
  eventType: z.literal(CoreAuditableEventType.ORGANIZATION_MEMBER_ROLE_CHANGED),
925
+ /** Tenant the membership belongs to. */
211
926
  organizationId: z.string(),
927
+ /** The membership ROW that was written. */
212
928
  memberId: z.string(),
929
+ /** The SUBJECT principal whose authority changed — not the actor. */
930
+ userId: z.string().optional(),
213
931
  previousRoles: z.array(z.string()),
214
932
  newRoles: z.array(z.string()),
933
+ /** The roles as AUTHORED by the caller (the set the role-ceiling gate measured). Absent when the caller authored none. */
934
+ requestedRoles: z.array(z.string()).optional(),
935
+ /** Which write path produced the change — the operation identifier (`create`, `update`, …). */
936
+ operation: z.string(),
215
937
  changedBy: z.string(),
216
938
  });
939
+ /**
940
+ * Per-unit role assignment on an `ORGANIZATION_UNIT_MEMBERS` row.
941
+ *
942
+ * The NARROWED twin of {@link AuditableEvent_OrganizationMember_RoleChangedEventDataSchema}. A unit
943
+ * assignment confers authority inside ONE organization unit — `appendUnitScopedRoles` emits it into
944
+ * `initiatorRoles` carrying an `organizationUnitId` discriminator, and every consumer that unions
945
+ * those entries partitions on that field first. The narrowing is what makes it not tenant-wide; it
946
+ * does not make it un-auditable, so the grant leaves evidence on the same terms.
947
+ *
948
+ * ## Why singular `role`, not an array
949
+ *
950
+ * `OrganizationUnitMember` persists ONE role per (unit, member) — that uniqueness is its business
951
+ * key. Reshaping it into an array here purely to mirror the organization-wide twin would invent a
952
+ * cardinality the resource does not have and invite a future reader to assume multiple unit roles
953
+ * are representable.
954
+ *
955
+ * `previousRole` is absent on an initial assignment, which is the honest encoding of "there was no
956
+ * prior grant" — distinct from a re-assignment away from a role that did exist.
957
+ */
958
+ export const AuditableEvent_OrganizationUnitMember_RoleChangedEventDataSchema = z.object({
959
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED),
960
+ /** Tenant the assignment belongs to. */
961
+ organizationId: z.string().optional(),
962
+ /** The unit the role is narrowed to — the discriminator that keeps this grant from reading as tenant-wide. */
963
+ organizationUnitId: z.string().optional(),
964
+ /** The assignment ROW that was written. */
965
+ assignmentId: z.string(),
966
+ /** The membership the assignment hangs off — the bridge to the SUBJECT principal. */
967
+ organizationMemberId: z.string().optional(),
968
+ /** Absent on an initial assignment: there was no prior grant to record. */
969
+ previousRole: z.string().optional(),
970
+ newRole: z.string(),
971
+ /** The role as AUTHORED by the caller (the value the role-ceiling gate measured). */
972
+ requestedRole: z.string().optional(),
973
+ /** Which write path produced the change — the operation identifier (`create`, `update`). */
974
+ operation: z.string(),
975
+ changedBy: z.string(),
976
+ });
977
+ /**
978
+ * Revocation of a per-unit role assignment — the closing half of
979
+ * {@link AuditableEvent_OrganizationUnitMember_RoleChangedEventDataSchema}.
980
+ *
981
+ * ## Why AUTHORIZATION rather than ORG_MANAGEMENT, unlike `ORGANIZATION_MEMBER_REMOVED`
982
+ *
983
+ * Removing an organization MEMBER is primarily a directory action — the person leaves the tenant —
984
+ * and the authority they lose is a consequence of that. An assignment row has no directory aspect
985
+ * whatsoever: it exists only to confer a role, so deleting it IS the revocation, and it is the exact
986
+ * counterpart of the CREATE that granted it. Classifying it as record-keeping would leave an
987
+ * authorization-filtered trail in which unit privileges are granted and never removed.
988
+ *
989
+ * ## Why the revoked role is captured
990
+ *
991
+ * `revokedRole` is the single field that cannot be recovered after the fact: the row is hard-deleted,
992
+ * so nothing else in the system can answer "what authority did this person lose". It is deliberately
993
+ * NOT named `previousRole` — that would imply a successor role, and there is none.
994
+ *
995
+ * ## Coverage boundary
996
+ *
997
+ * Emitted on the DIRECT assignment DELETE — the targeted revocation an operator performs and an
998
+ * auditor reviews. Cascade removals (deleting the parent membership, or the whole organization) run
999
+ * through the raw repository, which by construction does not execute service custom implementations;
1000
+ * those are evidenced by their own parent event, because the semantic act there is losing the
1001
+ * membership or the tenant, not revoking one unit role.
1002
+ */
1003
+ export const AuditableEvent_OrganizationUnitMember_RemovedEventDataSchema = z.object({
1004
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_REMOVED),
1005
+ /** Tenant the assignment belonged to. */
1006
+ organizationId: z.string().optional(),
1007
+ /** The unit the revoked role was narrowed to. */
1008
+ organizationUnitId: z.string().optional(),
1009
+ /** The assignment ROW that was deleted. */
1010
+ assignmentId: z.string(),
1011
+ /** The membership the assignment hung off — the bridge to the subject principal. */
1012
+ organizationMemberId: z.string().optional(),
1013
+ /** The authority that was removed. Unrecoverable once the row is gone, which is why it is recorded here. */
1014
+ revokedRole: z.string().optional(),
1015
+ removedBy: z.string(),
1016
+ });
217
1017
  export const AuditableEvent_OrganizationMember_StatusChangedEventDataSchema = z.object({
218
1018
  eventType: z.literal(CoreAuditableEventType.ORGANIZATION_MEMBER_STATUS_CHANGED),
219
1019
  organizationId: z.string(),
@@ -223,12 +1023,109 @@ export const AuditableEvent_OrganizationMember_StatusChangedEventDataSchema = z.
223
1023
  changedBy: z.string(),
224
1024
  reason: z.string().optional(),
225
1025
  });
1026
+ /**
1027
+ * Removal of an organization membership — by administrative DELETE, or by cancelling a pending
1028
+ * invitation through REVOKE.
1029
+ *
1030
+ * ## Why one event covers both, distinguished by `operation`
1031
+ *
1032
+ * They are genuinely different administrative acts — removing someone who works here versus
1033
+ * withdrawing an invitation that was never accepted — and an auditor must never confuse them. But
1034
+ * they are the same KIND of act (a membership ceases to exist) and share every other field, so
1035
+ * splitting them into two event types would fragment "how did this person's membership end?" across
1036
+ * two queries for no gain. `operation` carries the distinction, and `previousStatus` carries the
1037
+ * state the row was actually in, which `operation` alone cannot give: DELETE accepts any
1038
+ * non-`INVITED` status, so ACTIVE, INACTIVE and SUSPENDED removals are otherwise indistinguishable.
1039
+ *
1040
+ * An `INVITED` membership confers NOTHING — `execution-context-creator` builds `initiatorRoles` only
1041
+ * from `ACTIVE` memberships — so a REVOKE removes no live authority. It is still recorded, because
1042
+ * withdrawing someone's pending access is a directory decision an access review needs to see, and
1043
+ * because `ORGANIZATION_MEMBER_INVITED` would otherwise stand unanswered.
1044
+ *
1045
+ * ## Why `roles` is captured
1046
+ *
1047
+ * The row is hard-deleted, so afterwards nothing in the system can answer "what authority did this
1048
+ * person hold when they were removed". Same reasoning — and same shape — as
1049
+ * `AuditableEvent_User_DeletedEventDataSchema.appRoles`. On a REVOKE it records what the invitee
1050
+ * WOULD have received on acceptance.
1051
+ *
1052
+ * ## Category
1053
+ *
1054
+ * Classified ORG_MANAGEMENT rather than AUTHORIZATION, unlike `ORGANIZATION_UNIT_MEMBER_REMOVED`:
1055
+ * removing a MEMBER is a directory-lifecycle action whose authority loss is a consequence, whereas a
1056
+ * unit assignment row exists only to confer a role. The `roles` field is what keeps the authority
1057
+ * question answerable from an ORG_MANAGEMENT record.
1058
+ */
226
1059
  export const AuditableEvent_OrganizationMember_RemovedEventDataSchema = z.object({
227
1060
  eventType: z.literal(CoreAuditableEventType.ORGANIZATION_MEMBER_REMOVED),
228
1061
  organizationId: z.string(),
1062
+ /** The membership ROW that was deleted. */
229
1063
  memberId: z.string(),
1064
+ /** The SUBJECT principal who lost the membership. */
230
1065
  removedUserId: z.string(),
1066
+ /**
1067
+ * The organization-wide roles the membership carried. Unrecoverable once the row is gone.
1068
+ * On a REVOKE these were never in force — they are what acceptance would have conferred.
1069
+ */
1070
+ roles: z.array(z.string()).optional(),
1071
+ /**
1072
+ * The row's status at removal.
1073
+ *
1074
+ * Deliberately `z.string()` rather than the `OrganizationMemberStatus` enum, matching
1075
+ * `AuditableEvent_OrganizationMember_StatusChangedEventDataSchema`: an audit row is a historical
1076
+ * record that must stay readable after the vocabulary evolves, so the strictness belongs at the
1077
+ * PRODUCER (which assigns from the enum), not at the record.
1078
+ */
1079
+ previousStatus: z.string().optional(),
1080
+ /** Which path ended the membership — `delete` (a real member) or `revoke` (a pending invitation). */
1081
+ operation: z.string(),
1082
+ /**
1083
+ * The per-unit grants this removal took with it.
1084
+ *
1085
+ * `ORGANIZATION_UNIT_MEMBERS` is a composition child of the membership, so deleting the membership
1086
+ * cascades to every assignment — through the RAW REPOSITORY, below the service tier, where no
1087
+ * custom implementation runs and therefore no `ORGANIZATION_UNIT_MEMBER_REMOVED` can fire. Without
1088
+ * this field the trail would show each unit grant being made and never revoked: the assignment rows
1089
+ * are hard-deleted, so the lost authority is not reconstructible from data either.
1090
+ *
1091
+ * Carried here rather than emitted per row on purpose — one membership removal is ONE decision, and
1092
+ * a teardown that fans out into a dozen revocation events buries it. Captured in the DELETE prefix,
1093
+ * which is the last moment the assignments still exist.
1094
+ */
1095
+ revokedUnitAssignments: z.array(z.object({
1096
+ organizationUnitId: z.string(),
1097
+ role: z.string(),
1098
+ })).optional(),
1099
+ /**
1100
+ * Who ended the membership — a user id, or an {@link AuditActorSentinel}.
1101
+ *
1102
+ * ## Reading it: `operation: 'revoke'` has THREE causes, told apart HERE
1103
+ *
1104
+ * `operation` says a pending invitation ended; it does not say why. Three different acts produce
1105
+ * an identical `revoke`, and the distinction between them is exactly what an access review needs:
1106
+ *
1107
+ * | Cause | How to recognise it |
1108
+ * |---|---|
1109
+ * | The invitee DECLINED | `removedBy === removedUserId` — the subject is the actor |
1110
+ * | An administrator CANCELLED it | `removedBy` is a real user id, and a different one |
1111
+ * | It EXPIRED unanswered | `removedBy === AuditActorSentinel.SYSTEM` (the stale-invitation sweep) |
1112
+ *
1113
+ * This is why the decline path supplies an on-behalf-of principal rather than running anonymously.
1114
+ * A decline necessarily executes under BORROWED authority — the invitee has no standing to revoke
1115
+ * an organization membership — and a borrowed-authority context carries no initiator user id, so
1116
+ * the actor previously resolved to `SYSTEM`: an active refusal and a silent expiry wrote
1117
+ * byte-identical rows. Recording the acting principal separates all three with no extra event type,
1118
+ * which is the same economy `operation` and `previousStatus` already buy above.
1119
+ *
1120
+ * A reader must therefore not treat `removedBy === SYSTEM` on a `revoke` as "unknown actor". It is
1121
+ * a positive statement that no human ended this invitation.
1122
+ */
231
1123
  removedBy: z.string(),
1124
+ /**
1125
+ * The justification. Declared by REVOKE for exactly this purpose and supplied by an administrator
1126
+ * cancelling an invitation; on a decline it carries the invitee's optional reason, and the expiry
1127
+ * sweep supplies none. Absent, therefore, on most declines — do not read its absence as a cause.
1128
+ */
232
1129
  reason: z.string().optional(),
233
1130
  });
234
1131
  // Organization Lifecycle Event Data Schemas
@@ -253,6 +1150,230 @@ export const AuditableEvent_Organization_DeletedEventDataSchema = z.object({
253
1150
  deletedBy: z.string(),
254
1151
  reason: z.string().optional(),
255
1152
  });
1153
+ /**
1154
+ * A tenant was MARKED for deletion — the soft-delete half of tenant teardown.
1155
+ *
1156
+ * Kept SEPARATE from {@link AuditableEvent_Organization_DeletedEventDataSchema} rather than folded
1157
+ * into it with a flag, because the two record genuinely different facts and an auditor must not
1158
+ * have to infer which one happened. This event says *the tenant's access was revoked and its data
1159
+ * was scheduled for destruction*; `ORGANIZATION_DELETED` says *the data is gone*. Between them sits
1160
+ * a retention window in which the decision is still reversible, and a single merged event would
1161
+ * make "was this tenant's data actually destroyed?" unanswerable without correlating timestamps.
1162
+ *
1163
+ * It is also the evidence for the AUTHORIZATION consequence, which lands here and not at the purge:
1164
+ * user types revoked and tokens invalidated. `revokedUserTypeCount` records the blast radius of that
1165
+ * revocation without naming the users — the per-user detail belongs to the user-type events, and
1166
+ * duplicating identities into a tenant-scoped record would widen the personal data this row holds.
1167
+ *
1168
+ * assurance-control: WILDO.DATA.SECURE_LIFECYCLE — scheduling the destruction
1169
+ * of a tenant is a security-relevant, attributable decision that must leave evidence even when it
1170
+ * is later reversed.
1171
+ */
1172
+ export const AuditableEvent_Organization_DeletionRequestedEventDataSchema = z.object({
1173
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_DELETION_REQUESTED),
1174
+ organizationId: z.string(),
1175
+ name: z.string(),
1176
+ slug: z.string(),
1177
+ /** The ACTOR. On the `admin` variant they are not a member of the tenant being marked. */
1178
+ requestedBy: z.string(),
1179
+ /** When the purge batch becomes allowed to destroy the tenant — the promise made to it. */
1180
+ purgeScheduledAt: z.string(),
1181
+ /** How many users lost at least one global `userTypes` grant as a result of the mark. */
1182
+ revokedUserTypeCount: z.number().int().min(0),
1183
+ reason: z.string().optional(),
1184
+ });
1185
+ /**
1186
+ * A pending tenant deletion was CANCELLED inside its retention window.
1187
+ *
1188
+ * The closing half of {@link AuditableEvent_Organization_DeletionRequestedEventDataSchema}. Without
1189
+ * it the audit trail records every scheduled destruction and none of the reversals, so a tenant
1190
+ * that was marked and restored a year ago still reads as pending destruction — and an access review
1191
+ * asking "why does this tenant have live members again?" has no answer on record.
1192
+ *
1193
+ * assurance-control: WILDO.ACCESS.LIFECYCLE — restoring access is as attributable as removing it.
1194
+ */
1195
+ export const AuditableEvent_Organization_RestoredEventDataSchema = z.object({
1196
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_RESTORED),
1197
+ organizationId: z.string(),
1198
+ name: z.string(),
1199
+ slug: z.string(),
1200
+ /** The ACTOR — always a platform super-administrator; a marked tenant cannot restore itself. */
1201
+ restoredBy: z.string(),
1202
+ /** The status the tenant was returned to. */
1203
+ restoredStatus: z.string(),
1204
+ /** How many users had at least one global `userTypes` grant re-granted by the restore. */
1205
+ regrantedUserTypeCount: z.number().int().min(0),
1206
+ reason: z.string().optional(),
1207
+ });
1208
+ /**
1209
+ * The tenant was administratively HALTED — every member loses their organization roles.
1210
+ *
1211
+ * ## Why this is its own event rather than an `ORGANIZATION_UPDATED`
1212
+ *
1213
+ * Suspension is not a field edit. Since the tenant-status authority gate shipped, `SUSPENDED` is a
1214
+ * state in which a membership confers NOTHING — so this single write revokes the access of every
1215
+ * member of the tenant at once. Folding that into the generic update event would bury an
1216
+ * organization-wide access revocation inside a `changes` map, exactly where an access review would
1217
+ * not look for it.
1218
+ *
1219
+ * `suspensionReason` is REQUIRED, mirroring the request contract, because the reason is the whole
1220
+ * evidentiary point: an auditor asking "why was this tenant halted?" must not get a shrug.
1221
+ * `notifiedMembers` records whether the tenant was told — a deliberately quiet suspension is a
1222
+ * legitimate operator choice and one a reviewer needs to be able to see.
1223
+ *
1224
+ * assurance-control: WILDO.AUDIT.SECURITY_EVENT — organization-wide access
1225
+ * revocation must be attributable, justified, and evidenced.
1226
+ */
1227
+ export const AuditableEvent_Organization_SuspendedEventDataSchema = z.object({
1228
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_SUSPENDED),
1229
+ organizationId: z.string(),
1230
+ name: z.string(),
1231
+ slug: z.string(),
1232
+ /** The ACTOR — always a platform super-administrator; a tenant cannot suspend itself. */
1233
+ suspendedBy: z.string(),
1234
+ /** The status the tenant was halted FROM, so the transition is legible without a second lookup. */
1235
+ previousStatus: z.string(),
1236
+ suspensionReason: z.string(),
1237
+ /** Whether the tenant's members were emailed. A quiet suspension is a choice worth recording. */
1238
+ notifiedMembers: z.boolean(),
1239
+ /**
1240
+ * How many users lost at least one GLOBAL `userTypes` grant because this tenant stopped counting.
1241
+ *
1242
+ * A suspension does not only halt the tenant: a membership in a non-authority-conferring
1243
+ * organization no longer justifies a membership-derived global grant, so suspending an
1244
+ * organization can withdraw what it was vouching for platform-wide. That reach is exactly what an
1245
+ * access review needs to see, and it is invisible from the status change alone.
1246
+ */
1247
+ revokedUserTypeCount: z.number().int().min(0),
1248
+ });
1249
+ /**
1250
+ * A halted or expired tenant was returned to normal operation — the inverse of
1251
+ * {@link AuditableEvent_Organization_SuspendedEventDataSchema}.
1252
+ *
1253
+ * Restoring organization-wide access is as security-relevant as removing it, and without this event
1254
+ * the trail would record every suspension and none of the lifts — leaving a tenant that was halted
1255
+ * and reinstated a year ago still reading as suspended.
1256
+ *
1257
+ * `previousStatus` distinguishes the two journeys this operation serves: lifting a suspension
1258
+ * (`SUSPENDED`) and converting an expired trial (`TRIAL_EXPIRED`). They land on the same state and
1259
+ * are not the same event to a reviewer.
1260
+ *
1261
+ * assurance-control: WILDO.AUDIT.SECURITY_EVENT — reinstatement of access is attributable.
1262
+ */
1263
+ export const AuditableEvent_Organization_ActivatedEventDataSchema = z.object({
1264
+ eventType: z.literal(CoreAuditableEventType.ORGANIZATION_ACTIVATED),
1265
+ organizationId: z.string(),
1266
+ name: z.string(),
1267
+ slug: z.string(),
1268
+ /** The ACTOR — always a platform super-administrator. */
1269
+ activatedBy: z.string(),
1270
+ /** `SUSPENDED` (a lift) or `TRIAL_EXPIRED` (a conversion) — not the same journey. */
1271
+ previousStatus: z.string(),
1272
+ /** How many users had at least one global `userTypes` grant restored by the reactivation. */
1273
+ regrantedUserTypeCount: z.number().int().min(0),
1274
+ reason: z.string().optional(),
1275
+ });
1276
+ /**
1277
+ * One user type's authentication-policy snapshot — the COMPLETE authored `UserTypeAuthPolicy` (MFA,
1278
+ * password, lockout, enabled auth methods, step-up, session duration, …) as recorded in the trail.
1279
+ *
1280
+ * The whole policy is captured, not a hand-picked subset, so no posture axis escapes the record: a
1281
+ * weakening is as easily "disable the MFA auth method" (`authMethodsEnabled`) or "drop step-up"
1282
+ * (`stepUpAuth`) as "turn `requireMFA` off". The policy carries only booleans / numbers / enums —
1283
+ * never a secret — so recording it verbatim discloses nothing sensitive.
1284
+ *
1285
+ * Deliberately STRUCTURAL (an open record) rather than a reference to the live `UserTypeAuthPolicy`
1286
+ * config schema. An audit record is a historical fact: it must keep validating after the config
1287
+ * schema evolves, so it stores the policy as it was at that boot rather than re-validating it against
1288
+ * today's shape. The queryable summary lives in `changedUserTypes` + `snapshotDigest`; this object
1289
+ * carries the human-readable before/after detail.
1290
+ */
1291
+ export const ApplicationAuthPolicySnapshotSchema = z.record(z.string(), z.unknown());
1292
+ /**
1293
+ * The application's authored authentication policy changed between two boots.
1294
+ *
1295
+ * The per-user-type authentication policy (`userTypes.<type>.auth` — MFA, password, and lockout
1296
+ * requirements) is STATIC application configuration authored in code and taken into effect at backend
1297
+ * startup. A change to it — most consequentially a WEAKENING such as turning MFA off — is a
1298
+ * security-posture decision that, before this event, left no product-side record: only the source
1299
+ * history showed it. This event closes that gap.
1300
+ *
1301
+ * It is emitted at boot, by the system, when the resolved policy snapshot differs from the last one
1302
+ * recorded in the trail (detected by comparing against the most recent event of this type for the
1303
+ * application). Because there is no human actor at boot, the "who" is the deployment/source history;
1304
+ * the event records WHAT changed (before → after per user type) so a reviewer sees the posture shift
1305
+ * without reading the codebase.
1306
+ *
1307
+ * Scope note: this is the per-application AUTHORED baseline. It does NOT enumerate per-tenant
1308
+ * `authOverrides` (which are per-(user-type × org-type) and require live tenants to resolve), nor the
1309
+ * authenticate-time `FALLBACK_AUTH_POLICY` (a runtime substitute used only when no user type
1310
+ * resolves, not authored config).
1311
+ *
1312
+ * assurance-control: WILDO.IDENTITY.SESSION_ASSURANCE — a change to the authentication assurance
1313
+ * requirements (MFA / password / lockout) must be attributable and evidenced.
1314
+ */
1315
+ export const AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema = z.object({
1316
+ eventType: z.literal(CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED),
1317
+ applicationId: z.string(),
1318
+ /** Which user types' policies differed from the previously-recorded snapshot. Sorted, non-empty. */
1319
+ changedUserTypes: z.array(z.string()),
1320
+ /**
1321
+ * A stable digest of the `after` snapshot. Boot change-detection compares the current digest
1322
+ * against the digest carried by the most recent recorded event of this type; equal digests are the
1323
+ * signal to emit nothing, so the trail carries one row per genuine change, not one per boot.
1324
+ */
1325
+ snapshotDigest: z.string(),
1326
+ /**
1327
+ * The previously-recorded per-user-type policy snapshot, or `null` when this is the first snapshot
1328
+ * ever recorded for the application (the baseline row). Keys are user-type identifiers.
1329
+ */
1330
+ before: z.record(z.string(), ApplicationAuthPolicySnapshotSchema).nullable(),
1331
+ /** The per-user-type policy snapshot that took effect at this boot. Keys are user-type identifiers. */
1332
+ after: z.record(z.string(), ApplicationAuthPolicySnapshotSchema),
1333
+ });
1334
+ /**
1335
+ * A governed lifecycle transition changed a subject's `status`.
1336
+ *
1337
+ * Emitted by the shared status-transition implementation, so every verb it serves is trailed by
1338
+ * construction and a future one inherits the trail rather than having to remember it. Before this
1339
+ * existed those verbs emitted NOTHING: suspending a member (CRITICAL) or a user (HIGH) left no
1340
+ * record at all, while suspending a TENANT was fully attributable — an asymmetry an access review
1341
+ * would have to discover the hard way.
1342
+ *
1343
+ * `reason` is where the verbs' long-declared `reason` / `suspensionReason` fields finally land.
1344
+ * They are not persisted on the row: a suspension reason is a compliance artefact nothing reads
1345
+ * back, so the trail is its home rather than a schema column that would have to be scrubbed on
1346
+ * erasure.
1347
+ *
1348
+ * assurance-control: WILDO.AUDIT.SECURITY_EVENT — a change to whether a principal may act must be
1349
+ * attributable, justified and evidenced, on every resource that has such a state.
1350
+ */
1351
+ export const AuditableEvent_Resource_StatusTransitionPerformedEventDataSchema = z.object({
1352
+ eventType: z.literal(CoreAuditableEventType.RESOURCE_STATUS_TRANSITION_PERFORMED),
1353
+ /** Which resource the subject row belongs to — half of the verb discriminator. */
1354
+ resourceType: z.string(),
1355
+ /** The lifecycle verb that ran (`suspend`, `reactivate`, `suspend_user`, …). */
1356
+ operationIdentifier: z.string(),
1357
+ /** The row whose status changed. */
1358
+ subjectId: z.string(),
1359
+ /** The ACTOR who performed it, or the system principal when the reactivation sweep ran it. */
1360
+ performedBy: z.string(),
1361
+ /** The status transitioned FROM, so the change is legible without a second lookup. */
1362
+ previousStatus: z.string(),
1363
+ /** The status transitioned TO. */
1364
+ newStatus: z.string(),
1365
+ /** The caller's justification, where the verb's contract accepts one. */
1366
+ reason: z.string().optional(),
1367
+ /**
1368
+ * When an automated sweep will undo this, if the caller time-boxed it. ISO-8601.
1369
+ *
1370
+ * Recorded because "suspended for 7 days" and "suspended indefinitely" are materially different
1371
+ * decisions that would otherwise be indistinguishable in the trail.
1372
+ */
1373
+ scheduledReactivationAt: z.string().optional(),
1374
+ /** Present when the subject is tenant-scoped, so the trail routes to that tenant's SIEM. */
1375
+ organizationId: z.string().optional(),
1376
+ });
256
1377
  export const AuditableEvent_OrganizationNotifications_UpdatedEventDataSchema = z.object({
257
1378
  eventType: z.literal(CoreAuditableEventType.ORGANIZATION_NOTIFICATIONS_UPDATED),
258
1379
  organizationId: z.string(),
@@ -289,10 +1410,38 @@ export const AuditableEvent_User_SSOLoginEventDataSchema = z.object({
289
1410
  providerRef: z.string(),
290
1411
  connectionType: z.enum(SsoConnectionType),
291
1412
  authSource: z.string().optional(),
1413
+ scopeType: z.enum(AuthScopeType).optional(),
292
1414
  organizationId: z.string().optional(),
1415
+ applicationId: z.string().optional(),
293
1416
  ipAddress: z.string(),
294
1417
  userAgent: z.string(),
295
1418
  sessionId: z.string(),
1419
+ }).superRefine((event, ctx) => {
1420
+ if (event.connectionType === SsoConnectionType.SOCIAL) {
1421
+ if (event.scopeType !== undefined
1422
+ || event.organizationId !== undefined
1423
+ || event.applicationId !== undefined) {
1424
+ ctx.addIssue({
1425
+ code: 'custom',
1426
+ path: ['scopeType'],
1427
+ message: 'Social SSO audit events must not carry enterprise scope',
1428
+ });
1429
+ }
1430
+ return;
1431
+ }
1432
+ const hasOrganizationScope = event.scopeType === AuthScopeType.ORGANIZATION
1433
+ && event.organizationId !== undefined
1434
+ && event.applicationId === undefined;
1435
+ const hasApplicationScope = event.scopeType === AuthScopeType.APPLICATION
1436
+ && event.applicationId !== undefined
1437
+ && event.organizationId === undefined;
1438
+ if (!hasOrganizationScope && !hasApplicationScope) {
1439
+ ctx.addIssue({
1440
+ code: 'custom',
1441
+ path: ['scopeType'],
1442
+ message: 'Enterprise SSO audit events require exactly one explicit tenant scope',
1443
+ });
1444
+ }
296
1445
  });
297
1446
  export const AuditableEvent_User_SSOLoginFailedEventDataSchema = z.object({
298
1447
  eventType: z.literal(CoreAuditableEventType.USER_SSO_LOGIN_FAILED),
@@ -301,7 +1450,9 @@ export const AuditableEvent_User_SSOLoginFailedEventDataSchema = z.object({
301
1450
  connectionType: z.enum(SsoConnectionType).optional(),
302
1451
  authSource: z.string().optional(),
303
1452
  failureReason: z.string(),
1453
+ scopeType: z.enum(AuthScopeType).optional(),
304
1454
  organizationId: z.string().optional(),
1455
+ applicationId: z.string().optional(),
305
1456
  ipAddress: z.string(),
306
1457
  userAgent: z.string(),
307
1458
  });
@@ -339,6 +1490,37 @@ export const AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema = z
339
1490
  webhookUrlDomain: z.string().optional(),
340
1491
  eventFormatConfigured: z.string().optional(),
341
1492
  });
1493
+ // Outbound M2M Webhook Event Data Schemas
1494
+ /**
1495
+ * One `webhookConfig.testEndpoint` attempt — an admin causing the platform to open an
1496
+ * outbound connection to an operator-supplied URL.
1497
+ *
1498
+ * Recorded for EVERY attempt, not only failures: the security signal here is the pattern
1499
+ * (who probes which hosts, how often), which a SIEM can only derive if successes are
1500
+ * present too. `outcome` distinguishes a refusing endpoint from an unreachable one from a
1501
+ * local signing fault, so the stream stays diagnosable without the response body.
1502
+ *
1503
+ * `destinationHost` carries the host only, never the full URL — mirroring
1504
+ * `AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema.webhookUrlDomain`. Paths
1505
+ * and query strings on customer endpoints routinely embed per-tenant tokens, and an audit
1506
+ * row is replicated to the org SIEM and the immutable store.
1507
+ */
1508
+ export const AuditableEvent_Webhook_EndpointTestDispatchedEventDataSchema = z.object({
1509
+ eventType: z.literal(CoreAuditableEventType.WEBHOOK_ENDPOINT_TEST_DISPATCHED),
1510
+ /** Scope that owns the config — exactly one of these is set, per the polymorphic variant. */
1511
+ organizationId: z.string().optional(),
1512
+ applicationId: z.string().optional(),
1513
+ /** Admin who fired the probe. */
1514
+ dispatchedBy: z.string(),
1515
+ endpointId: z.string(),
1516
+ /** Host component only — see the schema JSDoc for why the full URL is withheld. */
1517
+ destinationHost: z.string(),
1518
+ outcome: z.enum(WebhookEndpointProbeOutcome),
1519
+ responseStatus: z.number().int().optional(),
1520
+ durationMs: z.number().int().nonnegative(),
1521
+ /** `jti` of the signed probe, for correlation with the consumer's own logs. */
1522
+ signatureJti: z.string(),
1523
+ });
342
1524
  // SCIM Directory Provisioning Event Data Schemas
343
1525
  export const AuditableEvent_SCIM_TokenCreatedEventDataSchema = z.object({
344
1526
  eventType: z.literal(CoreAuditableEventType.SCIM_TOKEN_CREATED),
@@ -387,6 +1569,38 @@ export const AuditableEvent_User_PasswordResetRequestedEventDataSchema = z.objec
387
1569
  ipAddress: z.string(),
388
1570
  userAgent: z.string(),
389
1571
  });
1572
+ /**
1573
+ * Administrator-compelled credential reset.
1574
+ *
1575
+ * Carries BOTH identities because the actor and the subject differ — that separation is the
1576
+ * whole point of the event. `actorUserId` is read from the authenticated execution context,
1577
+ * never from request input, so it cannot be spoofed by the caller. `reason` is the operator's
1578
+ * mandatory justification; it is what an auditor reads when asking why a credential was reset
1579
+ * out-of-band.
1580
+ *
1581
+ * assurance-control: WILDO.IDENTITY.CREDENTIAL_LIFECYCLE — privileged credential
1582
+ * intervention must be attributable to the acting administrator and carry a justification.
1583
+ */
1584
+ export const AuditableEvent_User_PasswordResetForcedEventDataSchema = z.object({
1585
+ eventType: z.literal(CoreAuditableEventType.USER_PASSWORD_RESET_FORCED),
1586
+ targetUserId: z.string(),
1587
+ targetEmail: z.string(),
1588
+ actorUserId: z.string(),
1589
+ reason: z.string(),
1590
+ /** Whether the target's active sessions were revoked as part of the reset. */
1591
+ sessionsRevoked: z.boolean(),
1592
+ /**
1593
+ * Transport metadata, OPTIONAL because this event's only producer is a resource operation.
1594
+ *
1595
+ * The auth controllers thread `ipAddress` / `userAgent` down from the Express request, but a
1596
+ * resource-operation custom implementation receives an `ExecutionContext`, which carries
1597
+ * identity and no transport detail. Rather than stamping a fabricated `'unknown'` that reads
1598
+ * like a captured value, the fields are omitted and correlation runs through the request log.
1599
+ * They become populated if transport metadata is ever threaded onto the execution context.
1600
+ */
1601
+ ipAddress: z.string().optional(),
1602
+ userAgent: z.string().optional(),
1603
+ });
390
1604
  export const AuditableEvent_User_PasswordResetCompletedEventDataSchema = z.object({
391
1605
  eventType: z.literal(CoreAuditableEventType.USER_PASSWORD_RESET_COMPLETED),
392
1606
  userId: z.string(),
@@ -543,10 +1757,26 @@ export const AuditableEvent_OAuth2ProviderBlockedEventDataSchema = z.object({
543
1757
  eventType: z.literal(CoreAuditableEventType.OAUTH2_PROVIDER_BLOCKED),
544
1758
  email: z.string().optional(),
545
1759
  providerRef: z.string(),
546
- organizationId: z.string(),
1760
+ scopeType: z.enum(AuthScopeType),
1761
+ organizationId: z.string().optional(),
1762
+ applicationId: z.string().optional(),
547
1763
  reason: z.string(),
548
1764
  ipAddress: z.string(),
549
1765
  userAgent: z.string(),
1766
+ }).superRefine((event, ctx) => {
1767
+ const hasOrganizationScope = event.scopeType === AuthScopeType.ORGANIZATION
1768
+ && event.organizationId !== undefined
1769
+ && event.applicationId === undefined;
1770
+ const hasApplicationScope = event.scopeType === AuthScopeType.APPLICATION
1771
+ && event.applicationId !== undefined
1772
+ && event.organizationId === undefined;
1773
+ if (!hasOrganizationScope && !hasApplicationScope) {
1774
+ ctx.addIssue({
1775
+ code: 'custom',
1776
+ path: ['scopeType'],
1777
+ message: 'OAuth2 provider-blocked events require exactly one explicit tenant scope',
1778
+ });
1779
+ }
550
1780
  });
551
1781
  // Emergency Access Event Data Schema
552
1782
  export const AuditableEvent_EmergencyAccess_UsedEventDataSchema = z.object({
@@ -566,18 +1796,967 @@ export const AuditableEvent_FieldAccess_EventDataSchema = z.object({
566
1796
  resourceId: z.string().optional(),
567
1797
  operationIdentifier: z.string(),
568
1798
  isCreateOperation: z.boolean(),
1799
+ // Machine-credential provenance when the ACCESSING principal is a machine (api-key / OAuth
1800
+ // client) rather than a human. Absent for user-authenticated access. Threads the credential id
1801
+ // + auth method onto the sensitive-field-access row so machine access is attributable — the
1802
+ // per-request counterpart to the dedicated MACHINE_AUTH_* events (machine-auth-hardening item 2).
1803
+ machineCredentialAuthMethod: z.string().optional(),
1804
+ machineCredentialId: z.string().optional(),
1805
+ });
1806
+ /**
1807
+ * **A resource operation took effect.** The operation-triggered counterpart to
1808
+ * {@link AuditableEvent_FieldAccess_EventDataSchema}, which is triggered by a decorated RESPONSE
1809
+ * FIELD and is therefore blind to any operation whose response carries none.
1810
+ *
1811
+ * ## What the existence of this row asserts, and what it does not
1812
+ *
1813
+ * It is emitted from the framework-managed POST-COMMIT effects lane, so the row exists only for an
1814
+ * operation whose mutation is already durable. "Performed" is therefore the whole claim — there is
1815
+ * deliberately no `outcome` discriminator, because this emission point can never observe a failure.
1816
+ *
1817
+ * The absence of a row is NOT evidence that nothing happened; that is what makes audit-pipeline
1818
+ * failure detection (`audit_store_failure_total`, and the operation identity now carried on the
1819
+ * failure log line) a control in its own right rather than an operational nicety.
1820
+ *
1821
+ * **Refusals are a different event and a different chokepoint.** A denied operation never reaches
1822
+ * this lane — the authorization decision happens pre-dispatch, its volume is attacker-drivable, and
1823
+ * it needs rate-limit / dedup treatment this success path does not. Declaring a `DENIED` outcome
1824
+ * here that nothing produces would repeat the very defect this event exists to fix (20 event types
1825
+ * were authored in this enum and wired to nothing). That refusal event now exists and is emitted:
1826
+ * see {@link AuditableEvent_ResourceOperationDenied_EventDataSchema}, raised from the authorizer.
1827
+ * The two events are read together — this one for what happened, that one for what was stopped —
1828
+ * and neither carries an `outcome` discriminator, because each states its whole claim in its name.
1829
+ *
1830
+ * ## Operation identity is a TRIPLE
1831
+ *
1832
+ * `resourceType` + `operationIdentifier` + `variantKey`. Recording only the first two makes an
1833
+ * `admin` variant indistinguishable from a `self` variant — a distinction several polymorphic
1834
+ * resources encode in `variantKey` alone, and precisely the distinction an auditor is checking.
1835
+ *
1836
+ * ## Correlation across a cascade
1837
+ *
1838
+ * Every execution surface emits — API, internal call, and repository-only — so one tenant deletion
1839
+ * produces one row per cascaded child. The top-level `correlationId` is inherited by every sub-call
1840
+ * context and preserved across mid-flight operation corrections, so it groups the whole fan-out to one request;
1841
+ * `subCallDepth` separates the initiating operation (0) from what it cascaded into.
1842
+ *
1843
+ * ## Field evidence is deliberately partial (GDPR Art. 5(1)(c) + Art. 17)
1844
+ *
1845
+ * `changedFields` names every field the write touched — a field NAME is not personal data, so it is
1846
+ * always safe and always recorded. `fieldEvidence` carries before/after VALUES only for fields the
1847
+ * schema marks `.isAuditEvidence()`.
1848
+ *
1849
+ * Values are limited on purpose: audit rows replicate to the per-org SIEM and to the immutable
1850
+ * ledger, and **the immutable ledger cannot be scrubbed** — so copying arbitrary personal data into
1851
+ * this event would manufacture an unerasable duplicate, in direct conflict with Art. 17 and with the
1852
+ * impersonalization/retention capability built to make personal data erasable. Authority-, status-
1853
+ * and scope-bearing values ARE necessary (a role change that does not record the old and new roles
1854
+ * proves nothing), and those are exactly what the marker is for.
1855
+ *
1856
+ * assurance-control: WILDO.AUDIT.EVIDENCE_INTEGRITY
1857
+ */
1858
+ export const AuditableEvent_ResourceOperationPerformed_EventDataSchema = z.object({
1859
+ eventType: z.literal(CoreAuditableEventType.RESOURCE_OPERATION_PERFORMED),
1860
+ // ── Operation identity (the triple + the shape that resolves the persistence semantics) ──
1861
+ /** The resource whose row(s) the operation acted on. */
1862
+ resourceType: z.string(),
1863
+ /** The verb — a core operation (`update`, `delete`) or a custom identifier (`suspend`). */
1864
+ operationIdentifier: z.string(),
1865
+ /** Which execution surface ran it. API, internal call, repository-only, cron, batch. */
1866
+ variantType: z.enum(ResourceOperationVariantType),
1867
+ /**
1868
+ * The variant discriminator. Absent on the default variant; REQUIRED to distinguish e.g. the
1869
+ * `admin` variant of a verb from its `self` twin, which share `operationIdentifier`.
1870
+ */
1871
+ variantKey: z.string().optional(),
1872
+ /** The core persistence semantics a custom verb borrows. Absent when the verb IS a core operation. */
1873
+ resourceOperationLike: z.enum(CoreResourceOperation).optional(),
1874
+ /** `true` for the bulk form, whose subject is a set rather than one row. */
1875
+ isBulkOperation: z.boolean().optional(),
1876
+ // ── Subject ──
1877
+ /** The row acted on. Absent for bulk operations, which name a count instead. */
1878
+ resourceId: z.string().optional(),
1879
+ /** Bulk operations only: how many rows the write affected. */
1880
+ affectedRecordCount: z.number().optional(),
1881
+ // ── Principal (the row's `userId` / `organizationId` / `applicationId` carry the identity) ──
1882
+ /**
1883
+ * The caller's roles AS THEY WERE at decision time. Roles are the framework's single
1884
+ * authorization axis, so without them a reader cannot tell whether the actor was entitled to the
1885
+ * action — and the actor's roles today are not the roles they held then.
1886
+ */
1887
+ initiatorRoles: z.array(z.string()),
1888
+ /** How the call was initiated — separates a human request from framework machinery. */
1889
+ executionType: z.enum(ExecutionContext_ExecutionType),
1890
+ /** Machine-credential provenance when the principal is a machine rather than a human. */
1891
+ machineCredentialAuthMethod: z.string().optional(),
1892
+ machineCredentialId: z.string().optional(),
1893
+ // ── Cascade depth (the request that groups the whole cascade is the row's top-level `correlationId`) ──
1894
+ /** `0` for the operation the caller invoked; deeper for what it cascaded into. */
1895
+ subCallDepth: z.number(),
1896
+ // ── Effect ──
1897
+ /** Every field the write touched. Names only — always safe, always recorded. */
1898
+ changedFields: z.array(z.string()).optional(),
1899
+ /**
1900
+ * Before/after values, restricted to fields marked `.isAuditEvidence()`. `before` is absent on a
1901
+ * CREATE (there was no prior value) and on any bulk write (the framework fetches a pre-image only
1902
+ * for a single selected id).
1903
+ */
1904
+ fieldEvidence: z
1905
+ .record(z.string(), z.object({
1906
+ before: z.unknown().optional(),
1907
+ after: z.unknown().optional(),
1908
+ }))
1909
+ .optional(),
1910
+ });
1911
+ /**
1912
+ * An operation the authorizer REFUSED. The other half of "record access decisions" — the negative
1913
+ * decision, which until now left no trace anywhere in the framework.
1914
+ *
1915
+ * ## Emitted pre-dispatch, from the one funnel
1916
+ *
1917
+ * Every public entry point of `AuthorizationsBackendService` converges on the same two inner phase
1918
+ * runners — `authorizeInController` (HTTP controller, MCP, WebSocket, queue, field validation),
1919
+ * `authorizeInProgrammaticSurface` (a non-controller surface that faces an external caller), and
1920
+ * `authorizeInRepositoryAndService`, which has exactly one caller — `authorizeInController` itself.
1921
+ * So a single instrumentation point observes every refusal THE AUTHORIZER MAKES, with the operation
1922
+ * and execution context both in scope. No mutation has occurred when this row is written; nothing is
1923
+ * rolled back by it.
1924
+ *
1925
+ * **The scope of that claim, stated because an earlier revision overstated it.** It used to read
1926
+ * "the sole production entry point for every execution surface", which asserts something stronger
1927
+ * and false: that every execution surface passes the role gate. A programmatic operation entering at
1928
+ * the SERVICE tier (`ServicesRegistryHandlerBackendService.read` / `list` / …) reaches no authorizer
1929
+ * at all — deliberately, because that population includes the reads that ESTABLISH identity before a
1930
+ * role-bearing principal exists. So the absence of a row here means "the authorizer refused nothing",
1931
+ * never "nothing was read". See `AuthorizationsBackendService.authorizeInProgrammaticSurface` for the
1932
+ * layering decision and the door.
1933
+ *
1934
+ * ## What it is NOT
1935
+ *
1936
+ * - **Not an authentication failure.** `USER_LOGIN_FAILED` / `MACHINE_AUTH_FAILED` say "you are not
1937
+ * who you claim to be". This says "you are, and you may not do this". Distinct types, distinct
1938
+ * categories, neither overloaded.
1939
+ * - **Not an `outcome: 'denied'` variant of {@link AuditableEvent_ResourceOperationPerformed_EventDataSchema}.**
1940
+ * That event is emitted from the post-commit lane, which by construction can only observe
1941
+ * operations that already took effect. A refusal never reaches it.
1942
+ *
1943
+ * ## Volume: bounded by dedup, NOT by a risk floor
1944
+ *
1945
+ * Denial volume is attacker-drivable in a way the success path's never is. A risk floor was
1946
+ * considered and rejected as the control: it would exclude 100% of denied READS (zero of the
1947
+ * catalogue's HIGH/CRITICAL variants are reads, while 371 of 551 API-reachable variants are) —
1948
+ * discarding the canonical reconnaissance signal — while not capping the adversarial worst case at
1949
+ * all, since the attacker chooses which endpoint to hammer.
1950
+ *
1951
+ * The actual bound is a per-principal / per-operation / per-reason dedup window. Rather than
1952
+ * suppressing repeats outright (which would erase the storm — the very signal a security-operations team wants),
1953
+ * emission escalates on a LOGARITHMIC ladder: the 1st, 10th, 100th, … refusal in the window each
1954
+ * emit one row carrying {@link occurrenceCount}. A burst of 10 000 identical denials therefore
1955
+ * costs 5 rows and remains legible as a burst.
1956
+ *
1957
+ * Dedup is best-effort and FAILS OPEN (emit) when the counter store is unavailable — a fail-closed
1958
+ * cooldown would let an attacker blind the audit trail by taking Redis down.
1959
+ *
1960
+ * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
1961
+ */
1962
+ /**
1963
+ * A platform operator acted on a row belonging to a tenant they are not a member of.
1964
+ *
1965
+ * ## Why this event exists
1966
+ *
1967
+ * Wildo's answer to "may a platform super-administrator administer any tenant?" is YES — the same
1968
+ * answer most mature B2B platforms give, because support and incident response genuinely need it.
1969
+ * What those platforms do NOT do is leave the reach implicit. Support access is a named, logged
1970
+ * event, because the difference between legitimate operator work and quiet snooping is not the
1971
+ * capability — both use the identical capability — it is whether anyone can tell afterwards.
1972
+ *
1973
+ * Until 2026-08-05 Wildo had the capability with none of the visibility, and by accident rather than
1974
+ * declaration: per-instance org-scoped requests are checked by `authorizeOrganizations`, which
1975
+ * compares the fetched row's organization against a scope the SAME REQUEST supplied through its URL.
1976
+ * A non-member operator therefore passed it silently. Measured over real HTTP by
1977
+ * `organization-ownership-grant-hostile.e2e.ts` probe F-1a, which deleted a membership row in
1978
+ * another tenant and got a 200.
1979
+ *
1980
+ * This event is the visibility half. It does NOT refuse — refusing is a separate, much larger change
1981
+ * with a measured blast radius (see the plan) and is a policy decision in its own right. Emission is
1982
+ * best-effort and never blocks the request: an operator action must not fail because the audit sink
1983
+ * is down, and a fail-closed variant would let anyone disable operator support by breaking the sink.
1984
+ *
1985
+ * ## Reading the event
1986
+ *
1987
+ * {@link admissionDeclared} is the field that matters most. `true` means the operation VARIANT
1988
+ * declared `admitsCrossTenantPlatformAdministration` — an intended, reviewed crossing such as
1989
+ * `organizationMembers.grantOwnership`. `false` means the reach came from the structural gap above:
1990
+ * nobody declared it, no spec documents it, and it is the population to watch.
1991
+ *
1992
+ * assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION — platform-tier access to a tenant the
1993
+ * principal does not belong to.
1994
+ * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
1995
+ */
1996
+ /**
1997
+ * One transition in the life of a platform access grant.
1998
+ *
1999
+ * The crossing itself is recorded by {@link CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS}.
2000
+ * This is the other half, and a reviewer needs both: that event answers "an operator reached into
2001
+ * this tenant", this one answers "on what authority, asked for when, and who agreed".
2002
+ *
2003
+ * Deliberately two events rather than one enriched one. A grant is requested once and may authorise
2004
+ * many crossings across its window, so folding them together would either duplicate the grant's
2005
+ * details onto every access or lose the request/decision timeline entirely.
2006
+ *
2007
+ * {@link autoApprovalReason} is the field a customer audit turns on. Its ABSENCE on an approved grant
2008
+ * means a human in the tenant said yes. `TENANT_APPROVAL_NOT_REQUIRED` means the tenant had not opted
2009
+ * into approval. `TENANT_CANNOT_APPROVE` means the tenant had no administratively usable owner and
2010
+ * could not consent — the one path where operator access proceeds against a tenant that never agreed
2011
+ * and never could, which is why the emitter carries it at a higher risk level.
2012
+ *
2013
+ * assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION
2014
+ * assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE — evidence of a privileged assignment's full life.
2015
+ */
2016
+ export const AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema = z.object({
2017
+ eventType: z.literal(CoreAuditableEventType.PLATFORM_ACCESS_GRANT_LIFECYCLE),
2018
+ /** Which transition this row records. */
2019
+ transition: z.enum(PlatformAccessGrantLifecycleTransition),
2020
+ /** The grant, so the whole timeline can be reassembled from its rows. */
2021
+ grantId: z.string(),
2022
+ /** The tenant that was, or would have been, reached into. */
2023
+ targetOrganizationId: z.string(),
2024
+ /** The operator who asked. Never the decider — see {@link decidedByUserId}. */
2025
+ operatorUserId: z.string(),
2026
+ /** Why the operator said they needed access. Recorded on every transition, not only the request. */
2027
+ justification: z.string().optional(),
2028
+ /** The status the grant holds after this transition. */
2029
+ resultingStatus: z.enum(PlatformAccessGrantStatus),
2030
+ /** When the elevation stops working. Absent on a grant that never became usable. */
2031
+ expiresAt: z.date().optional(),
2032
+ /** Present exactly when the grant became usable with no tenant administrator acting. */
2033
+ autoApprovalReason: z.enum(PlatformAccessGrantAutoApprovalReason).optional(),
2034
+ /** The tenant administrator who approved, denied or revoked. Absent on an auto-approval. */
2035
+ decidedByUserId: z.string().optional(),
2036
+ /** Their stated reason, when they gave one. */
2037
+ decisionReason: z.string().optional(),
2038
+ });
2039
+ export const AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema = z.object({
2040
+ eventType: z.literal(CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS),
2041
+ /** The tenant that was reached into — the row's organization, never the caller's own. */
2042
+ targetOrganizationId: z.string(),
2043
+ /** The resource whose row the operator acted on. */
2044
+ resourceType: z.string(),
2045
+ /** The verb — a core operation (`update`, `delete`) or a custom identifier (`grantOwnership`). */
2046
+ operationIdentifier: z.string(),
2047
+ /** Which execution surface the crossing arrived on. */
2048
+ variantType: z.enum(ResourceOperationVariantType),
2049
+ /** The variant discriminator, which is what distinguishes a declared crossing from its siblings. */
2050
+ variantKey: z.string().optional(),
2051
+ /** The row(s) reached. Absent for collection operations, which name no id. */
2052
+ targetResourceIds: z.array(z.string()).optional(),
2053
+ /**
2054
+ * The elevation that authorised this crossing, when one did.
2055
+ *
2056
+ * This is what joins the two operator-access events into one story: the lifecycle event says an
2057
+ * elevation was requested, justified and decided; this field says WHICH elevation a given access
2058
+ * was exercised under. Without it a reviewer looking at a crossing has to infer the grant from
2059
+ * timestamps, which stops working the moment an operator holds two grants in a day.
2060
+ *
2061
+ * Absent on the bootstrap verb (`requestAccess` is exempt — it is how a grant comes into existence)
2062
+ * and on any crossing admitted before grants were required.
2063
+ */
2064
+ authorizingGrantId: z.string().optional(),
2065
+ /**
2066
+ * Did the operation variant DECLARE this crossing (`admitsCrossTenantPlatformAdministration`)?
2067
+ *
2068
+ * `false` is the signal worth alerting on: reach that no variant asked for and no specification
2069
+ * describes. See this schema's JSDoc.
2070
+ */
2071
+ admissionDeclared: z.boolean(),
2072
+ /** The caller's roles as they were at decision time. */
2073
+ initiatorRoles: z.array(z.string()),
2074
+ /** How the call was initiated — separates a human operator from framework machinery. */
2075
+ executionType: z.enum(ExecutionContext_ExecutionType),
2076
+ });
2077
+ /**
2078
+ * An application-wide directory enumeration.
2079
+ *
2080
+ * See {@link CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS} for why this is a distinct event
2081
+ * type rather than a shape of the cross-tenant one. The short version: there is no target tenant to
2082
+ * name, because the read deliberately spans them all.
2083
+ */
2084
+ export const AuditableEvent_PlatformDirectoryAccess_EventDataSchema = z.object({
2085
+ eventType: z.literal(CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS),
2086
+ /** The directory that was enumerated (`users`, `anonymousUsers`, …). */
2087
+ resourceType: z.string(),
2088
+ /** The collection verb — `list`, `search`, `count`. */
2089
+ operationIdentifier: z.string(),
2090
+ /** Which execution surface the read arrived on. */
2091
+ variantType: z.enum(ResourceOperationVariantType),
2092
+ /**
2093
+ * The variant discriminator.
2094
+ *
2095
+ * Load-bearing rather than decorative: on `users` the DEFAULT `list` variant is `INTERNAL_CALL`
2096
+ * and registers no route, while the HTTP-exposed one is the non-default `admin` variant. A
2097
+ * reviewer who cannot tell the two apart cannot tell an internal enumeration from an operator
2098
+ * browsing the directory.
2099
+ */
2100
+ variantKey: z.string().optional(),
2101
+ /**
2102
+ * How many rows the caller actually received.
2103
+ *
2104
+ * The size is the signal. "An operator opened the user directory" is routine; "an operator paged
2105
+ * through 40,000 users" is the shape of an export, and only this field distinguishes them.
2106
+ */
2107
+ returnedCount: z.number().int().nonnegative(),
2108
+ /** The caller's roles as they were at read time. */
2109
+ initiatorRoles: z.array(z.string()),
2110
+ /** How the call was initiated — separates a human operator from framework machinery. */
2111
+ executionType: z.enum(ExecutionContext_ExecutionType),
2112
+ });
2113
+ export const AuditableEvent_ResourceOperationDenied_EventDataSchema = z.object({
2114
+ eventType: z.literal(CoreAuditableEventType.RESOURCE_OPERATION_DENIED),
2115
+ // ── Why (the discriminator a security-operations dashboard groups by) ──
2116
+ /** Which refusal the authorizer resolved. */
2117
+ denialReason: z.enum(ResourceOperationDenialReason),
2118
+ // ── Operation identity (the same TRIPLE as the success twin — see its JSDoc for why) ──
2119
+ /** The resource whose row(s) the caller attempted to act on. */
2120
+ resourceType: z.string(),
2121
+ /** The verb — a core operation (`update`, `delete`) or a custom identifier (`suspend`). */
2122
+ operationIdentifier: z.string(),
2123
+ /** Which execution surface the attempt arrived on. */
2124
+ variantType: z.enum(ResourceOperationVariantType),
2125
+ /**
2126
+ * The variant discriminator. Absent on the default variant; REQUIRED to distinguish e.g. the
2127
+ * `admin` variant of a verb from its `self` twin, which share `operationIdentifier`.
2128
+ */
2129
+ variantKey: z.string().optional(),
2130
+ /** The core persistence semantics a custom verb borrows. Absent when the verb IS a core operation. */
2131
+ resourceOperationLike: z.enum(CoreResourceOperation).optional(),
2132
+ /** `true` for the bulk form, whose subject is a set rather than one row. */
2133
+ isBulkOperation: z.boolean().optional(),
2134
+ // ── Subject (what was ATTEMPTED — never proof the row exists) ──
2135
+ /**
2136
+ * The row id(s) the caller named. Present even for {@link ResourceOperationDenialReason.SUBJECT_NOT_RESOLVABLE},
2137
+ * where the id may correspond to nothing at all — this records what was ASKED FOR, not what exists.
2138
+ * Absent for collection operations, which name no id.
2139
+ */
2140
+ attemptedResourceIds: z.array(z.string()).optional(),
2141
+ // ── Authority (what was required vs. what was held) ──
2142
+ /**
2143
+ * The role set the operation demanded. Together with {@link initiatorRoles} this makes the refusal
2144
+ * self-explaining: a reviewer sees what was needed and what the caller had, without re-deriving
2145
+ * the operation's config as it stood that day.
2146
+ */
2147
+ requiredRoles: z.array(z.string()).optional(),
2148
+ /**
2149
+ * The caller's roles AS THEY WERE at decision time — empty when the refusal WAS the absence of
2150
+ * them ({@link ResourceOperationDenialReason.MISSING_INITIATOR}).
2151
+ */
2152
+ initiatorRoles: z.array(z.string()),
2153
+ /** How the call was initiated — separates a human request from framework machinery. */
2154
+ executionType: z.enum(ExecutionContext_ExecutionType),
2155
+ /** Machine-credential provenance when the refused principal is a machine rather than a human. */
2156
+ machineCredentialAuthMethod: z.string().optional(),
2157
+ machineCredentialId: z.string().optional(),
2158
+ // ── Cascade depth (the request that groups the whole cascade is the row's top-level `correlationId`) ──
2159
+ /** `0` for the operation the caller invoked; deeper for what it cascaded into. */
2160
+ subCallDepth: z.number(),
2161
+ // ── Burst accounting (see the dedup ladder in this schema's JSDoc) ──
2162
+ /**
2163
+ * How many identical refusals (same principal, operation and reason) have accumulated in the
2164
+ * current dedup window INCLUDING this one. `1` on the first. A row with a large value is a
2165
+ * deliberate escalation checkpoint, not a duplicate.
2166
+ */
2167
+ occurrenceCount: z.number(),
2168
+ /**
2169
+ * `true` when the count is exact (the dedup counter was reachable). `false` when the counter store
2170
+ * was unavailable and the emission fell open — the row is then a truthful record of ONE refusal
2171
+ * whose burst context is unknown, and {@link occurrenceCount} is not to be trusted as a total.
2172
+ */
2173
+ occurrenceCountIsExact: z.boolean(),
2174
+ });
2175
+ /**
2176
+ * A privileged SEE-THROUGH read that revealed RETAINED (impersonalized-and-retained) records —
2177
+ * rows kept for a legal/audit obligation while their personal data was scrubbed, hidden from
2178
+ * normal callers by the retention hide-predicate. This is the compliance-grade access record over
2179
+ * that scrubbed data, and its two defining properties (vs `SYSTEM_CONTEXT_READ`, which names only the
2180
+ * RUNTIME that acted, never a human) are:
2181
+ *
2182
+ * 1. **Human attribution** — `accessingUserId` names the actual super-admin / `COMPLIANCE_AUDITOR`
2183
+ * who exercised the see-through, so a retained-data reveal is never anonymous. Non-empty
2184
+ * (`.trim().min(1)`) — a blank id cannot stand in for a human.
2185
+ * 2. **A required reason** — `reason` is the mandatory justification for revealing scrubbed PII.
2186
+ * Non-empty (`.trim().min(1)`): a blank OR whitespace-only reason fails validation, so the audit
2187
+ * trail cannot record a reveal without a real "why". The see-through primitives ALSO fail-closed on
2188
+ * blank attribution before the read (the schema `.min(1)` is the contract; the primitive guard is
2189
+ * the enforcement point, since the audit store persists `eventData` as an unparsed record).
2190
+ *
2191
+ * Strictly read-only (the see-through primitive never mutates). Emitted by the see-through read
2192
+ * primitive (`readRetainedAsSystem` / `listRetainedAsSystem`) — wired in a later phase; this is the
2193
+ * contract only.
2194
+ */
2195
+ export const AuditableEvent_RetainedDataAccess_EventDataSchema = z.object({
2196
+ eventType: z.literal(CoreAuditableEventType.RETAINED_DATA_ACCESS),
2197
+ /** The HUMAN principal who performed the see-through read (super-admin / COMPLIANCE_AUDITOR). Non-empty. */
2198
+ accessingUserId: z.string().trim().min(1),
2199
+ /** REQUIRED non-empty compliance justification for revealing the retained (scrubbed) records — the "why". */
2200
+ reason: z.string().trim().min(1),
2201
+ /** The resource type whose retained rows were revealed. */
2202
+ resourceType: z.string(),
2203
+ /** Present for a single-record see-through read; absent for a list/search reveal. */
2204
+ resourceId: z.string().optional(),
2205
+ /** For a list/search see-through: how many retained rows the query revealed. */
2206
+ retainedRecordCount: z.number().optional(),
2207
+ /** The see-through primitive that ran (e.g. `readRetainedAsSystem` / `listRetainedAsSystem`). */
2208
+ operationIdentifier: z.string(),
2209
+ /** The privileged role(s) that authorized the see-through (roles are the single authorization axis). */
2210
+ roles: z.array(z.string()).optional(),
2211
+ /** Tenant scope of the accessed data (organizationId), when the read was org-scoped. */
2212
+ organizationId: z.string().optional(),
2213
+ ipAddress: z.string().optional(),
2214
+ });
2215
+ /**
2216
+ * A DATA SUBJECT EXPORT — the compliance record of the framework assembling everything it holds
2217
+ * about one person and disclosing it.
2218
+ *
2219
+ * This is the most sensitive READ the framework performs, and the one an access-request audit turns
2220
+ * on. Its defining properties:
2221
+ *
2222
+ * 1. **A named subject** — `subjectResourceType` + `subjectIds`: WHOSE data left the system. An
2223
+ * export event that cannot name its subject is not an access record.
2224
+ * 2. **A named purpose** — `purpose` is a `SubjectExportPurpose`. Art. 15 and Art. 20 produce
2225
+ * genuinely different bundles, so an audit trail that recorded only "an export happened" could
2226
+ * not later establish which right was answered or whether it was answered completely.
2227
+ * 3. **What was actually included** — `includedResourceTypes` + `totalRecordCount`, and
2228
+ * `fieldsExcludedAsDerived` for the Art. 20 narrowing. The OMISSIONS matter as much as the
2229
+ * contents: "why was this not in my export?" must have a recorded answer.
2230
+ *
2231
+ * Carries NO personal data — resource types, ids, counts and field NAMES only. Recording the
2232
+ * exported values would turn the record of a disclosure into a second copy of it, in a store with
2233
+ * a longer retention than the export artifact itself.
2234
+ *
2235
+ * assurance-control: WILDO.PRIVACY.SUBJECT_DATA_EXPORT
2236
+ */
2237
+ export const AuditableEvent_SubjectDataExport_EventDataSchema = z.object({
2238
+ eventType: z.literal(CoreAuditableEventType.SUBJECT_DATA_EXPORT),
2239
+ /** WHICH data-subject right this export answered — the two produce different bundles. */
2240
+ purpose: z.string().trim().min(1),
2241
+ /** The exported subject's resource type. */
2242
+ subjectResourceType: z.string().trim().min(1),
2243
+ /** The exported subject rows. Non-empty: an export with no subject is not an export. */
2244
+ subjectIds: z.array(z.string()).min(1),
2245
+ /** Every resource that actually contributed rows to the bundle. */
2246
+ includedResourceTypes: z.array(z.string()),
2247
+ /** Total rows disclosed across the whole bundle. */
2248
+ totalRecordCount: z.number(),
2249
+ /**
2250
+ * `resourceType.fieldName` locators omitted from an Art. 20 bundle as controller-derived. Empty
2251
+ * for an Art. 15 access export, which discloses every field regardless of provenance.
2252
+ */
2253
+ fieldsExcludedAsDerived: z.array(z.string()),
2254
+ /**
2255
+ * `resourceType.fieldName` locators withheld as NON-DISCLOSABLE regardless of right — secrets and
2256
+ * backend-only values the export refuses to hand out. Recorded so a thin bundle reads as a
2257
+ * deliberate security floor rather than a missed resource.
2258
+ */
2259
+ fieldsWithheldAsNonDisclosable: z.array(z.string()),
2260
+ /** Tenant scope, when the export ran org-scoped. */
2261
+ organizationId: z.string().optional(),
2262
+ });
2263
+ /**
2264
+ * A COLLECTION EXPORT — an operator rendered a resource listing to a file and downloaded it.
2265
+ *
2266
+ * ## What it must answer, and what it must never carry
2267
+ *
2268
+ * The reviewer's questions are: which listing, in what shape, and **how much left**. So the row
2269
+ * count is mandatory and the row scope is recorded verbatim — "they exported the page they were
2270
+ * looking at" and "they exported the whole table" are the same action with very different
2271
+ * consequences, and only this field separates them after the fact.
2272
+ *
2273
+ * `filterFieldNames` records WHICH filters narrowed the export, **never their values**. A filter
2274
+ * value is frequently personal data (`?email=…`, `?assigneeId=…`), so recording it would turn the
2275
+ * record of a disclosure into a second copy of it, in a store that outlives the exported file — the
2276
+ * same rule {@link AuditableEvent_SubjectDataExport_EventDataSchema} follows ("resource types, ids,
2277
+ * counts and field NAMES only"). No row content, ever.
2278
+ *
2279
+ * ## Why the severity is static and the risk is not
2280
+ *
2281
+ * `AUDIT_EVENT_CLASSIFICATION_MAP` is keyed by event TYPE, so severity cannot vary per emission.
2282
+ * Classifying every export WARNING would put a routine twenty-row page download beside a whole-table
2283
+ * dump and train reviewers to skim the channel; classifying every export INFO would leave the dump
2284
+ * indistinguishable. The distinction therefore rides on `riskLevel`, which IS per-emission and is an
2285
+ * indexed summary column on the audit row: LOW for a page, HIGH for a full result set.
2286
+ *
2287
+ * *Rejected: two event types.* A page export and a full export are one action with one parameter,
2288
+ * and splitting the vocabulary to vary a field would make every consumer match two types forever.
2289
+ *
2290
+ * assurance-control: WILDO.PRIVACY.COLLECTION_DATA_EXPORT
2291
+ */
2292
+ export const AuditableEvent_CollectionDataExport_EventDataSchema = z.object({
2293
+ eventType: z.literal(CoreAuditableEventType.COLLECTION_DATA_EXPORT),
2294
+ /** The exported resource. */
2295
+ resourceType: z.string().trim().min(1),
2296
+ /** The LIST/SEARCH operation whose result set was exported. */
2297
+ sourceOperationIdentifier: z.string().trim().min(1),
2298
+ /** `csv` | `json` — the rendered wire format. */
2299
+ format: z.string().trim().min(1),
2300
+ /** `visible_page` | `full_result_set` — see the docstring; this is the field that matters most. */
2301
+ rowScope: z.string().trim().min(1),
2302
+ /** Rows actually written to the file. Mandatory: an export event with no count answers nothing. */
2303
+ rowCount: z.number().int().nonnegative(),
2304
+ /** Names of the filters that narrowed the export. NEVER their values. */
2305
+ filterFieldNames: z.array(z.string()),
2306
+ /** Tenant scope, when the export ran org-scoped. */
2307
+ organizationId: z.string().optional(),
2308
+ });
2309
+ /**
2310
+ * Rows were read THROUGH an HTTP-API resource binding — the read-through trail for data living in
2311
+ * an EXTERNAL system the platform does not own (ETL plan D8/R6; see the enum member's docstring
2312
+ * for why this is neither SYSTEM_CONTEXT_READ nor COLLECTION_DATA_EXPORT).
2313
+ *
2314
+ * One event per read-family OPERATION execution: a paginated LIST and the count that totals its
2315
+ * envelope are ONE access, not two — the unit a reviewer reasons about is "an operation reached
2316
+ * into the external system", never the transport's call multiplicity. Carries NO row data and no
2317
+ * filter VALUES — the trail must never become a second copy of the external system's content.
2318
+ *
2319
+ * `initiatorUserId` is the REAL initiating user (R12): under a SERVICE_PRINCIPAL binding every
2320
+ * remote call authenticates as one service account, and this field is what keeps attribution
2321
+ * alive through that shared principal. Optional because internal/machine executions genuinely
2322
+ * have no user — absence means "a runtime acted", exactly as `executionType` records.
2323
+ *
2324
+ * assurance-control: WILDO.AUDIT.ATTRIBUTION — read-through access to an external system is
2325
+ * recorded with the real initiating user carried through the shared service principal.
2326
+ */
2327
+ export const AuditableEvent_HttpApiReadThroughAccess_EventDataSchema = z.object({
2328
+ eventType: z.literal(CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS),
2329
+ /** The Wildo resource whose binding was read through. */
2330
+ resourceType: z.string().trim().min(1),
2331
+ /** The read-family member executed: `read` | `list` | `count` | `search`. */
2332
+ operationIdentifier: z.string().trim().min(1),
2333
+ /** The provider the binding resolves credentials/base-URL through (e.g. `odoo`). */
2334
+ providerRef: z.string().trim().min(1),
2335
+ /** The remote entity (OData entity set / Odoo model / declared REST surface). */
2336
+ remoteEntityRef: z.string().trim().min(1),
2337
+ /** The transport dialect spoken (`odata` | `rest-json` | `odoo-jsonrpc`). */
2338
+ dialect: z.string().trim().min(1),
2339
+ /** The REAL initiating user — absent only for genuine machine/internal executions. */
2340
+ initiatorUserId: z.string().optional(),
2341
+ /** The execution type that acted, for the machine/internal cases. */
2342
+ executionType: z.string().optional(),
2343
+ /** Tenant scope, when the read ran org-scoped. */
2344
+ organizationId: z.string().optional(),
2345
+ /** The addressed row's synthesized id, for single-row reads. */
2346
+ resourceId: z.string().optional(),
2347
+ /** Rows returned (list/search), or the count answered (count). Absent for a single READ. */
2348
+ rowCount: z.number().int().nonnegative().optional(),
2349
+ });
2350
+ /**
2351
+ * A subject erasure invoked the DECLARED external-erasure operation of an HTTP_API binding
2352
+ * (ETL D6 stance 6b) — rows linked to the erased subject were deleted in the external system.
2353
+ *
2354
+ * Carries ids only, never personal fields: by the time this emits, the subject's local row is
2355
+ * scrubbed, and the whole point of the operation was that the remote copies stop existing.
2356
+ *
2357
+ * assurance-control: WILDO.AUDIT.ATTRIBUTION — the outbound deletion names the subject it served
2358
+ * and the external system it reached; the erasure report is the per-request receipt, this row is
2359
+ * the queryable trail.
2360
+ */
2361
+ export const AuditableEvent_HttpApiExternalErasure_EventDataSchema = z.object({
2362
+ eventType: z.literal(CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE),
2363
+ /** The erased subject's resource type (e.g. `users`). */
2364
+ subjectResourceType: z.string().trim().min(1),
2365
+ /** The erased subject row ids the deleted remote rows were linked to. */
2366
+ subjectIds: z.array(z.string().trim().min(1)).min(1),
2367
+ /** The HTTP_API-bound Wildo resource whose declared erasure operation ran. */
2368
+ resourceType: z.string().trim().min(1),
2369
+ /** The provider the binding resolves credentials/base-URL through. */
2370
+ providerRef: z.string().trim().min(1),
2371
+ /** The remote entity (OData entity set / Odoo model / declared REST surface). */
2372
+ remoteEntityRef: z.string().trim().min(1),
2373
+ /** The transport dialect spoken (`odata` | `rest-json` | `odoo-jsonrpc`). */
2374
+ dialect: z.string().trim().min(1),
2375
+ /** Remote rows the declared operation deleted (0 is a legitimate nothing-to-erase). */
2376
+ deletedRowCount: z.number().int().nonnegative(),
2377
+ /** Tenant scope, when the erasure request carried one. */
2378
+ organizationId: z.string().optional(),
2379
+ });
2380
+ /**
2381
+ * A subject erasure COMPLETED while rows linked to the subject remain live in an HTTP_API-bound
2382
+ * external system, on the controller's explicit per-request acknowledgement (ETL D6 stance 6c).
2383
+ *
2384
+ * THE RECORD IS THE CONTROL: the acknowledgement's entire justification is that the hole becomes
2385
+ * VISIBLE rather than prevented (`administrative-continuity-floors.md`), so this event must name
2386
+ * everything a reviewer needs to act — the subject, the resource, the external system, and the
2387
+ * remaining linkage when it could be measured.
2388
+ *
2389
+ * assurance-control: WILDO.AUDIT.ATTRIBUTION — an acknowledged erasure hole is recorded per
2390
+ * resource, per erasure request, never as a standing posture.
2391
+ */
2392
+ export const AuditableEvent_HttpApiNonErasureAcknowledged_EventDataSchema = z.object({
2393
+ eventType: z.literal(CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED),
2394
+ /** The erased subject's resource type (e.g. `users`). */
2395
+ subjectResourceType: z.string().trim().min(1),
2396
+ /** The erased subject row ids whose linked remote rows remain live. */
2397
+ subjectIds: z.array(z.string().trim().min(1)).min(1),
2398
+ /** The HTTP_API-bound Wildo resource whose rows remain un-erased. */
2399
+ resourceType: z.string().trim().min(1),
2400
+ /** The provider the binding resolves credentials/base-URL through. */
2401
+ providerRef: z.string().trim().min(1),
2402
+ /** The remote entity (OData entity set / Odoo model / declared REST surface). */
2403
+ remoteEntityRef: z.string().trim().min(1),
2404
+ /** The transport dialect spoken (`odata` | `rest-json` | `odoo-jsonrpc`). */
2405
+ dialect: z.string().trim().min(1),
2406
+ /**
2407
+ * Remote rows still linked to the subject, when the target answered a count. ABSENT means the
2408
+ * count could not be measured (the count read failed or is undeclared for the binding) — never
2409
+ * write 0 for "unknown": zero is a measured answer.
2410
+ */
2411
+ remainingRowCount: z.number().int().nonnegative().optional(),
2412
+ /** Tenant scope, when the erasure request carried one. */
2413
+ organizationId: z.string().optional(),
2414
+ });
2415
+ /**
2416
+ * Audit-log event for cross-frontend session handoff issuance
2417
+ * (cross-app-jwt-propagation Step 2).
2418
+ *
2419
+ * Captures who issued a transferable session credential, where it was bound to,
2420
+ * and a hash of the deep-link target so ops can correlate handoff issuance with
2421
+ * the corresponding `tokenExchange` event WITHOUT leaking the raw deep link
2422
+ * (which can carry org IDs, share codes, or draft IDs).
2423
+ *
2424
+ * `returnPathHash` is hex-encoded `sha256(returnPath)` computed by the audit-log
2425
+ * helper from the validated returnPath. NEVER pass a pre-hashed value at the
2426
+ * call site (defense-in-depth: prevents accidental double-hashing or hash
2427
+ * mismatch with what the schema validated).
2428
+ */
2429
+ export const AuditableEvent_User_CrossFrontendHandoffIssuedEventDataSchema = z.object({
2430
+ eventType: z.literal(CoreAuditableEventType.USER_CROSS_FRONTEND_HANDOFF_ISSUED),
2431
+ userId: z.string(),
2432
+ /** The `X-Frontend-Service-Name` of the source frontend that initiated the handoff. */
2433
+ sourceFrontendServiceName: z.string().optional(),
2434
+ /** The SaaS-config service key (and runtime `frontendServiceName`) of the target. */
2435
+ targetServiceKey: z.string(),
2436
+ /** SHA-256 hex of the validated returnPath; NEVER the raw path. */
2437
+ returnPathHash: z.string(),
2438
+ /** ID of the issued AUTH_CODE_EXCHANGE consumable token (for replay forensics). */
2439
+ consumableTokenId: z.string(),
2440
+ ipAddress: z.string(),
2441
+ userAgent: z.string(),
2442
+ });
2443
+ // ── OAuth2 / OIDC Provider Event Data Schemas (Wildo AS the authorization server) ──
2444
+ /**
2445
+ * A user-delegated `authorization_code` access token was minted for a third-party client at
2446
+ * `/oauth/token`. This is the most security-sensitive access grant the provider makes: the client
2447
+ * can now act AS the user at the audience-bound A2A/MCP resource. `clientId` is the `azp`
2448
+ * (attribution only — the token carries the USER's authority, not the client's). Never carries the
2449
+ * raw token.
2450
+ */
2451
+ export const AuditableEvent_OAuth_DelegatedTokenIssuedEventDataSchema = z.object({
2452
+ eventType: z.literal(CoreAuditableEventType.OAUTH_DELEGATED_TOKEN_ISSUED),
2453
+ /** The delegating (consenting) user — the token subject. */
2454
+ userId: z.string(),
2455
+ /** The third-party client the token was minted for (`azp`). */
2456
+ clientId: z.string(),
2457
+ /** The A2A/MCP resource-server audience the token is confined to. */
2458
+ audience: z.string(),
2459
+ /** Granted identity scopes (openid/…); may be empty. Identity/consent provenance only — no authz weight. */
2460
+ scopes: z.array(z.string()),
2461
+ /** Delegated-token lifetime in seconds (short-lived; never the full session TTL). */
2462
+ ttlSeconds: z.number(),
2463
+ ipAddress: z.string().optional(),
2464
+ });
2465
+ /** A user APPROVED an interactive consent request — a code is issued and the client may act for them. */
2466
+ export const AuditableEvent_OAuth_ConsentGrantedEventDataSchema = z.object({
2467
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CONSENT_GRANTED),
2468
+ /** The user who approved. */
2469
+ userId: z.string(),
2470
+ /** The client the consent was granted to. */
2471
+ clientId: z.string(),
2472
+ /** The scopes consented to. */
2473
+ scopes: z.array(z.string()),
2474
+ /** The RFC 8707 resource the consent was bound to, when present. */
2475
+ resource: z.string().optional(),
2476
+ /** Whether the user asked to persist the grant ("remember this app") — a durable-authority signal. */
2477
+ remembered: z.boolean(),
2478
+ ipAddress: z.string().optional(),
2479
+ });
2480
+ /** A user DENIED an interactive consent request — access refused. */
2481
+ export const AuditableEvent_OAuth_ConsentDeniedEventDataSchema = z.object({
2482
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CONSENT_DENIED),
2483
+ userId: z.string(),
2484
+ clientId: z.string(),
2485
+ scopes: z.array(z.string()),
2486
+ resource: z.string().optional(),
2487
+ ipAddress: z.string().optional(),
2488
+ });
2489
+ /**
2490
+ * A persistent consent grant (the durable "remember this app" record, keyed on
2491
+ * `(userId, clientId, resource)`) was created or updated — it lets future authorize flows SKIP the
2492
+ * consent prompt, so its lifecycle is a first-class delegated-authority audit concern.
2493
+ */
2494
+ export const AuditableEvent_OAuth_ConsentGrantPersistedEventDataSchema = z.object({
2495
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CONSENT_GRANT_PERSISTED),
2496
+ userId: z.string(),
2497
+ clientId: z.string(),
2498
+ /** The RFC 8707 resource the grant covers; absent for an OIDC-only (resource-less) grant. */
2499
+ resource: z.string().optional(),
2500
+ /** The union of scopes the grant now covers after the write. */
2501
+ scopes: z.array(z.string()),
2502
+ /** `true` when a NEW grant row was created; `false` when an existing grant's scopes were widened. */
2503
+ isNewGrant: z.boolean(),
2504
+ });
2505
+ /**
2506
+ * A CIMD `client_id` URL was refused. Unauthenticated by construction, so the URL, the reason and
2507
+ * the source of the request ARE the investigation surface.
2508
+ */
2509
+ export const AuditableEvent_OAuth_CimdClientRefusedEventDataSchema = z.object({
2510
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CIMD_CLIENT_REFUSED),
2511
+ /** The `client_id` URL as presented. Attacker-controlled, so treated as data, never as a locator. */
2512
+ clientId: z.string(),
2513
+ /** Closed vocabulary — branched on by operators and COUNTED, never free text. */
2514
+ reason: z.string(),
2515
+ detail: z.string().optional(),
2516
+ });
2517
+ /**
2518
+ * A client registered itself at `/oauth/register` (RFC 7591). Unauthenticated by construction, so
2519
+ * the source IP and the self-asserted name/redirects ARE the investigation surface — there is no
2520
+ * principal to attribute it to.
2521
+ */
2522
+ export const AuditableEvent_OAuth_DynamicClientRegisteredEventDataSchema = z.object({
2523
+ eventType: z.literal(CoreAuditableEventType.OAUTH_DYNAMIC_CLIENT_REGISTERED),
2524
+ clientId: z.string(),
2525
+ /** Self-asserted; nobody vetted it. Shown on the consent screen, so worth recording verbatim. */
2526
+ clientName: z.string(),
2527
+ /** The redirect URIs the client claimed — where an authorization code would be delivered. */
2528
+ redirectUris: z.array(z.string()),
2529
+ /**
2530
+ * The POST-LOGOUT redirect URIs the client claimed (revocation-C) — where an RP-Initiated Logout would
2531
+ * send the browser after the session ends. Optional: absent on rows written before the field existed and
2532
+ * for a registration that declared none.
2533
+ */
2534
+ postLogoutRedirectUris: z.array(z.string()).optional(),
2535
+ ipAddress: z.string().optional(),
2536
+ });
2537
+ /**
2538
+ * A user token was rotated via the provider `refresh_token` grant (`/oauth/token`). Distinct from the
2539
+ * first-party session refresh (`USER_TOKEN_REFRESHED`): this is the OAuth-provider endpoint, which a
2540
+ * confidential client MAY authenticate to. Low-detail INFO — the security-relevant refresh signal is
2541
+ * reuse/theft ({@link CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED}).
2542
+ *
2543
+ * There is deliberately NO `OAUTH_TOKEN_REFRESH_FAILED` counterpart (user-confirmed 2026-07-31): routine
2544
+ * refresh failures (expired / revoked / plain-invalid presented token) are high-volume benign noise from
2545
+ * ended sessions, and auditing them would drown the compliance store. The only refresh-failure worth an
2546
+ * audit record is credential theft, which reuse-detection catches → `USER_REFRESH_TOKEN_REUSE_DETECTED`.
2547
+ */
2548
+ export const AuditableEvent_OAuth_TokenRefreshedEventDataSchema = z.object({
2549
+ eventType: z.literal(CoreAuditableEventType.OAUTH_TOKEN_REFRESHED),
2550
+ /** The refreshing user, when resolvable from the freshly-minted access token; else absent. */
2551
+ userId: z.string().optional(),
2552
+ /** The client that authenticated the refresh (confidential-client id_token re-issue path); else absent. */
2553
+ clientId: z.string().optional(),
2554
+ /** Whether a confidential client was authenticated on this refresh (vs a first-party session refresh). */
2555
+ clientAuthenticated: z.boolean(),
2556
+ ipAddress: z.string().optional(),
2557
+ });
2558
+ /**
2559
+ * A token was revoked via `/oauth/revoke` (RFC 7009). The endpoint is deliberately a no-oracle (200 for
2560
+ * unknown tokens), so this records the ATTEMPT + the authenticated client (if any), never whether the
2561
+ * token existed or whose it was.
2562
+ */
2563
+ export const AuditableEvent_OAuth_TokenRevokedEventDataSchema = z.object({
2564
+ eventType: z.literal(CoreAuditableEventType.OAUTH_TOKEN_REVOKED),
2565
+ /** The confidential client that authenticated to revoke, when present. */
2566
+ clientId: z.string().optional(),
2567
+ /** Whether a confidential client authenticated the revocation. */
2568
+ clientAuthenticated: z.boolean(),
2569
+ /** The RFC 7009 `token_type_hint` the caller supplied, when present. */
2570
+ tokenTypeHint: z.string().optional(),
2571
+ ipAddress: z.string().optional(),
2572
+ });
2573
+ /**
2574
+ * An OIDC RP-Initiated Logout (RP-Initiated Logout 1.0) terminated the End-User's OP session at
2575
+ * `/oauth/end-session` (revocation-C). Records WHO logged out WHICH session via WHICH relying party, and
2576
+ * whether a session was actually terminated / a post-logout redirect was refused. `userId`/`sessionId`/
2577
+ * `clientId` are present only when a valid `id_token_hint` identified them — an invalid or absent hint
2578
+ * still lands the user on the OP's page but terminates nothing.
2579
+ */
2580
+ export const AuditableEvent_OAuth_RpInitiatedLogoutEventDataSchema = z.object({
2581
+ eventType: z.literal(CoreAuditableEventType.OAUTH_RP_INITIATED_LOGOUT),
2582
+ /** The user whose OP session was terminated — present only when a valid `id_token_hint` identified them. */
2583
+ userId: z.string().optional(),
2584
+ /** The terminated login session (the id_token `sid`) — present only when the hint carried one. */
2585
+ sessionId: z.string().optional(),
2586
+ /** The relying party that initiated the logout (the id_token `azp`), when identifiable. */
2587
+ clientId: z.string().optional(),
2588
+ /** Whether a session was actually terminated (a valid hint carrying a `sid` was presented). */
2589
+ sessionTerminated: z.boolean(),
2590
+ /** Whether a presented `post_logout_redirect_uri` was REFUSED because it did not match the client's
2591
+ * registered allowlist — a misconfiguration / open-redirect-probe signal worth separating from a
2592
+ * plain no-URI logout. */
2593
+ postLogoutRedirectUriRejected: z.boolean(),
2594
+ ipAddress: z.string().optional(),
2595
+ });
2596
+ /**
2597
+ * An `authorization_code` exchange was REJECTED at `/oauth/token`. A potential attack signal (code
2598
+ * replay, PKCE downgrade, redirect tampering, cross-client redemption). `reason` names the cause;
2599
+ * `userId`/`resource` are present only for causes detected AFTER the code decodes (never for the
2600
+ * atomic replay/consume failure, which fails before decode).
2601
+ */
2602
+ export const AuditableEvent_OAuth_CodeExchangeFailedEventDataSchema = z.object({
2603
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CODE_EXCHANGE_FAILED),
2604
+ /** The specific failure cause (closed vocabulary). */
2605
+ reason: z.enum(OAuthCodeExchangeFailureReason),
2606
+ /** The redeeming client, when the request supplied one. */
2607
+ clientId: z.string().optional(),
2608
+ /** The code's subject, available only for post-decode causes. */
2609
+ userId: z.string().optional(),
2610
+ /** The code's bound resource, available only for post-decode causes. */
2611
+ resource: z.string().optional(),
2612
+ ipAddress: z.string().optional(),
2613
+ });
2614
+ /**
2615
+ * A consent DECISION was submitted by an authenticated user who is NOT the user the consent request was
2616
+ * bound to (returns 403). A textbook cross-user authorization-abuse signal — user A attempting to act on
2617
+ * user B's pending consent. CRITICAL: records BOTH principals for the SIEM.
2618
+ */
2619
+ export const AuditableEvent_OAuth_ConsentBindingViolationEventDataSchema = z.object({
2620
+ eventType: z.literal(CoreAuditableEventType.OAUTH_CONSENT_BINDING_VIOLATION),
2621
+ /** The authenticated user who submitted the decision (the actor). */
2622
+ authenticatedUserId: z.string(),
2623
+ /** The user the consent request was actually bound to (the victim). */
2624
+ boundUserId: z.string(),
2625
+ /** The client the consent request was for, when known. */
2626
+ clientId: z.string().optional(),
2627
+ /** The consent-request consumable-token id, for replay forensics. */
2628
+ consentTokenId: z.string().optional(),
2629
+ ipAddress: z.string().optional(),
2630
+ });
2631
+ /**
2632
+ * Refresh-token REUSE was detected → the whole token family was revoked (possible theft). Emitted by the
2633
+ * refresh CALLERS, NOT the token issuer: the issuer stays audit-free by design (it performs the revoke and
2634
+ * surfaces a machine-readable reuse SIGNAL on its thrown error), and each caller decides to audit. Applies
2635
+ * to BOTH the first-party session refresh and the OAuth-provider refresh grant (shared issuer).
2636
+ */
2637
+ export const AuditableEvent_User_RefreshTokenReuseDetectedEventDataSchema = z.object({
2638
+ eventType: z.literal(CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED),
2639
+ /** The user whose token family was revoked (the victim). */
2640
+ userId: z.string(),
2641
+ /** The reused refresh token's `jti` (the replayed credential id) — never the raw token. */
2642
+ reusedJti: z.string(),
2643
+ /** The session the reused token belonged to, when present on the claim. */
2644
+ sessionId: z.string().optional(),
2645
+ /** Whether the family-wide revocation (`TOKEN_INVALID_BEFORE`) was written — the action taken. */
2646
+ familyRevoked: z.boolean(),
2647
+ ipAddress: z.string().optional(),
569
2648
  });
570
2649
  // MongoDB-compatible schema using simple object for eventData
571
2650
  // The discriminated union validation will be handled at the service layer
572
2651
  export const AuditableEvent_DataSchema = z.record(z.string(), z.any());
573
2652
  export const AuditableEvent_BaseSchema = z.object({
574
2653
  _id: z.string().isPrimaryKey().isSummaryField(),
2654
+ /**
2655
+ * Store-agnostic, server-minted correlation key (UUID). The Mongo `_id` is
2656
+ * THIS store's primary key, but immudb (and any future audit sink) has its
2657
+ * own native key — so cross-store correlation needs an id that belongs to the
2658
+ * EVENT, not to one store. Minted in `AuditLogsBackendService._createAuditLog`
2659
+ * BEFORE the DB write and carried on BOTH the DB row AND the provider fan-out
2660
+ * emission, so the Phase-3 completeness reconciler can match DB rows ⇄ immudb
2661
+ * records (and `AuditLogVerification.verifyAuditEvent(eventId)` resolves the
2662
+ * same key). Not the primary key: `_id` stays the DB PK.
2663
+ */
2664
+ eventId: z.string().isDBIndexed(),
575
2665
  // Note: .optional() must come AFTER decorators to preserve optionality in TypeScript type inference
576
2666
  userId: z.string().isSummaryField().optional(),
2667
+ /**
2668
+ * The org the event is ABOUT (event DATA) — e.g. the org whose SSO config changed, or the
2669
+ * org resolved from a login email's domain. **NEVER a routing key.** Per-org SIEM / sink
2670
+ * dispatch routes ONLY on the AUTHENTICATED request org
2671
+ * (`ExecutionContext.initiatorIds.organizationId`) — this field is attacker-influenceable on
2672
+ * pre-auth paths (a failed-login email domain → org lookup), so routing on it would leak one
2673
+ * tenant's events into another tenant's SIEM (F4). See `AuditLogsBackendService._createAuditLog`.
2674
+ *
2675
+ * ## Why an attacker-influenceable value is nonetheless SAFE to persist here
2676
+ *
2677
+ * Recorded 2026-08-05, when this field stopped being silently dropped on write (see
2678
+ * `_createAuditLog`'s `preserveServerInjectedFields` call). The change makes a value an
2679
+ * unauthenticated caller can influence both durable and, on the org-scoped viewer, VISIBLE — so
2680
+ * the two channels it could reach were each checked rather than assumed.
2681
+ *
2682
+ * 1. **SIEM delivery — unaffected.** Per-org dispatch keys on the AUTHENTICATED request org, never
2683
+ * on this field (F4, above). Persisting it changes no routing decision, so the cross-tenant
2684
+ * SIEM leak F4 exists to prevent is not reachable through it.
2685
+ * 2. **In-product visibility — intended, not a leak.** `ORGANIZATIONS → AUDIT_LOGS` is
2686
+ * `REQUIRES_CONTEXT` on `organizationId`, so this value decides which org sees the row in the
2687
+ * org-scoped Audit Log Viewer. A failed-login row surfacing in the org whose user was targeted
2688
+ * is the CORRECT outcome — a tenant seeing authentication attempts against its own members is
2689
+ * the purpose of an audit log, not a disclosure. Nothing about a third org is exposed: the row
2690
+ * describes the attempt itself.
2691
+ *
2692
+ * **Residual, stated rather than hidden:** an unauthenticated caller can therefore cause rows to
2693
+ * appear in a NAMED org's viewer (log injection / noise) by choosing the email domain it probes.
2694
+ * Bounded to rows describing that caller's own attempt against that org, which is the org already
2695
+ * being attacked and the party with the strongest reason to see them. Volume abuse is bounded by
2696
+ * the authentication rate limiters, not by this field. If a future review wants that noise
2697
+ * separated, the fix is a provenance discriminator on the row (authenticated vs. domain-resolved
2698
+ * org), NOT dropping the field again — dropping it is what made the viewer's org filter return
2699
+ * nothing at all.
2700
+ *
2701
+ * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — tenant segregation of the audit trail is
2702
+ * enforced on the authenticated scope, while the subject org retains visibility of events
2703
+ * concerning it.
2704
+ */
577
2705
  organizationId: z.string().isSummaryField().optional(),
2706
+ /**
2707
+ * The application the event is ABOUT when its owning tenant is application-scoped.
2708
+ * Like `organizationId`, this is forensic event data and never a per-org SIEM routing key.
2709
+ */
2710
+ applicationId: z.string().isSummaryField().optional(),
2711
+ /**
2712
+ * The request-correlation id (see `ExecutionContext.correlationId`) — groups every audit row produced
2713
+ * by ONE request / job / cron tick, and equals the `correlationId` stamped on that request's structured
2714
+ * log lines and errors, so an investigator can pivot audit ⇄ logs ⇄ error by a single id. Populated by
2715
+ * `_createAuditLog` from the request `ExecutionContext` when threaded, else from the ambient
2716
+ * request-context ALS frame — that fallback is what finally populates it on the COMMON emit path (most
2717
+ * emitters pass no EC). Indexed for correlation queries. Store-agnostic like `eventId`, but distinct:
2718
+ * `eventId` correlates ONE event across audit stores; `correlationId` correlates MANY events to one request.
2719
+ */
2720
+ correlationId: z.string().isDBIndexed().isSummaryField().optional(),
2721
+ /**
2722
+ * Which frontend SURFACE the request originated from (`x-frontend-service-name`: app / website / docs),
2723
+ * captured at the HTTP edge into the request-context frame and hoisted here by `_createAuditLog`. Origin
2724
+ * attribution — "where did this action come from". Absent for non-HTTP (job / cron / internal) events.
2725
+ */
2726
+ frontendServiceName: z.string().isSummaryField().optional(),
2727
+ /**
2728
+ * Which browser/device INSTALL the request came from (`x-client-instance-id`) — the axis that lets a
2729
+ * reviewer group one actor's activity ACROSS sessions and logins, which `correlationId` (one request)
2730
+ * and `frontendServiceName` (which surface) cannot. Captured at the HTTP edge into the request-context
2731
+ * frame and hoisted here by `_createAuditLog`, exactly like `frontendServiceName`.
2732
+ *
2733
+ * **Populated ONLY when the application authored a non-`DISABLED` `compliance.clientInstanceIdScope`
2734
+ * (OPT-IN, default OFF — Fork D / SD9).** Absent for every unopted application, for non-HTTP events
2735
+ * (job / cron / internal), and whenever the client sent no id. It is a pseudonymous identifier under
2736
+ * GDPR Art 4(5), so it carries obligations the other correlation columns do not — see
2737
+ * `ClientInstanceIdScope` and `.claude/plans/traceability-correlation-id.md` (SD9).
2738
+ *
2739
+ * Deliberately DISTINCT from (never merged with, per SD8): `anonymousUserId` (an identity the app
2740
+ * assigns a pre-auth PERSON), `DeviceInfoSchema.fingerprint` (a derived/probabilistic device
2741
+ * signature), and `clientId` (the OAuth `azp` — which SOFTWARE client, already on the row).
2742
+ */
2743
+ // GDPR Art. 4(5) pseudonymised data by this field's own JSDoc above — so it is personal data, and
2744
+ // a notice must enumerate it. IDENTITY: it is an identifier assigned to a person's client, not an
2745
+ // observation of what they did.
2746
+ clientInstanceId: z.string().isDBIndexed().isSummaryField().optional()
2747
+ .dataCategories(PersonalDataCategory.IDENTITY),
578
2748
  riskLevel: z.enum(ResourceOperationRiskLevel).isSummaryField(),
579
- eventType: z.string().isSummaryField(),
580
- eventData: AuditableEvent_DataSchema,
2749
+ // USAGE — an audit row is a record of what a principal DID. The event type and its data together
2750
+ // are the observation, so both carry the category; `riskLevel`, `eventCategory` and `severity` are
2751
+ // the framework's CLASSIFICATION of the event rather than data about the person, and carry none.
2752
+ //
2753
+ // ⚠️ The reverse of the `.isAuditEvidence()` rule, and deliberately so. That marker decides which
2754
+ // FIELD VALUES get copied INTO an audit row, and personal data must never be marked, because the
2755
+ // immutable ledger cannot be scrubbed. This declaration is about the audit row's OWN fields, which
2756
+ // hold personal data whether or not anyone wanted them to — and a notice must say so precisely
2757
+ // BECAUSE they are unerasable.
2758
+ eventType: z.string().isSummaryField().dataCategories(PersonalDataCategory.USAGE),
2759
+ eventData: AuditableEvent_DataSchema.dataCategories(PersonalDataCategory.USAGE),
581
2760
  /** Populated by service layer via getAuditEventClassification(). Required for CREATE (audit logs are REPOSITORY_ONLY, no API). */
582
2761
  eventCategory: z.enum(AuditEventCategory).isSummaryField(),
583
2762
  /** Populated by service layer via getAuditEventClassification(). Required for CREATE (audit logs are REPOSITORY_ONLY, no API). */
@@ -591,7 +2770,13 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
591
2770
  AuditableEvent_User_LogoutEventDataSchema,
592
2771
  AuditableEvent_User_LoginFailedEventDataSchema,
593
2772
  AuditableEvent_User_AccountLockedEventDataSchema,
2773
+ AuditableEvent_MachineAuth_SuccessEventDataSchema,
2774
+ AuditableEvent_MachineAuth_FailedEventDataSchema,
2775
+ AuditableEvent_MachineAccess_EventDataSchema,
594
2776
  AuditableEvent_User_SessionExpiredEventDataSchema,
2777
+ AuditableEvent_User_AppRolesChangedEventDataSchema,
2778
+ AuditableEvent_Application_SuperAdminFloorBreachedEventDataSchema,
2779
+ AuditableEvent_Organization_OwnerFloorBreachedEventDataSchema,
595
2780
  AuditableEvent_OrganizationMember_InvitedEventDataSchema,
596
2781
  AuditableEvent_OrganizationMember_JoinedEventDataSchema,
597
2782
  AuditableEvent_OrganizationMember_UpdatedEventDataSchema,
@@ -601,16 +2786,26 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
601
2786
  AuditableEvent_Organization_CreatedEventDataSchema,
602
2787
  AuditableEvent_Organization_UpdatedEventDataSchema,
603
2788
  AuditableEvent_Organization_DeletedEventDataSchema,
2789
+ AuditableEvent_Organization_DeletionRequestedEventDataSchema,
2790
+ AuditableEvent_Organization_RestoredEventDataSchema,
2791
+ AuditableEvent_Organization_SuspendedEventDataSchema,
2792
+ AuditableEvent_Resource_StatusTransitionPerformedEventDataSchema,
2793
+ AuditableEvent_Organization_ActivatedEventDataSchema,
604
2794
  AuditableEvent_OrganizationNotifications_UpdatedEventDataSchema,
605
2795
  AuditableEvent_OrganizationPreferences_UpdatedEventDataSchema,
606
2796
  AuditableEvent_OrganizationProfile_UpdatedEventDataSchema,
607
2797
  AuditableEvent_OrganizationUnit_UpdatedEventDataSchema,
2798
+ AuditableEvent_OrganizationUnitMember_RoleChangedEventDataSchema,
2799
+ AuditableEvent_OrganizationUnitMember_RemovedEventDataSchema,
2800
+ AuditableEvent_User_DeletedEventDataSchema,
608
2801
  AuditableEvent_User_SSOLoginEventDataSchema,
609
2802
  AuditableEvent_User_SSOLoginFailedEventDataSchema,
610
2803
  AuditableEvent_User_SSOEnforcementBlockedEventDataSchema,
611
2804
  AuditableEvent_User_TokenRefreshedEventDataSchema,
612
2805
  AuditableEvent_Organization_SSOConfigurationChangedEventDataSchema,
613
2806
  AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema,
2807
+ AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema,
2808
+ AuditableEvent_Webhook_EndpointTestDispatchedEventDataSchema,
614
2809
  AuditableEvent_SCIM_TokenCreatedEventDataSchema,
615
2810
  AuditableEvent_SCIM_TokenRevokedEventDataSchema,
616
2811
  AuditableEvent_SCIM_UserProvisionedEventDataSchema,
@@ -618,6 +2813,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
618
2813
  AuditableEvent_SCIM_UserDeactivatedEventDataSchema,
619
2814
  AuditableEvent_User_PasswordResetRequestedEventDataSchema,
620
2815
  AuditableEvent_User_PasswordResetCompletedEventDataSchema,
2816
+ AuditableEvent_User_PasswordResetForcedEventDataSchema,
621
2817
  AuditableEvent_User_RegisteredEventDataSchema,
622
2818
  AuditableEvent_User_EmailVerifiedEventDataSchema,
623
2819
  AuditableEvent_User_VerificationEmailResentEventDataSchema,
@@ -639,5 +2835,27 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
639
2835
  AuditableEvent_OAuth2ProviderBlockedEventDataSchema,
640
2836
  AuditableEvent_EmergencyAccess_UsedEventDataSchema,
641
2837
  AuditableEvent_FieldAccess_EventDataSchema,
2838
+ AuditableEvent_ResourceOperationPerformed_EventDataSchema,
2839
+ AuditableEvent_ResourceOperationDenied_EventDataSchema,
2840
+ AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema,
2841
+ AuditableEvent_PlatformDirectoryAccess_EventDataSchema,
2842
+ AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema,
2843
+ AuditableEvent_RetainedDataAccess_EventDataSchema,
2844
+ AuditableEvent_SubjectDataExport_EventDataSchema,
2845
+ AuditableEvent_CollectionDataExport_EventDataSchema,
2846
+ AuditableEvent_HttpApiReadThroughAccess_EventDataSchema,
2847
+ AuditableEvent_HttpApiExternalErasure_EventDataSchema,
2848
+ AuditableEvent_HttpApiNonErasureAcknowledged_EventDataSchema,
2849
+ AuditableEvent_User_CrossFrontendHandoffIssuedEventDataSchema,
2850
+ AuditableEvent_OAuth_DelegatedTokenIssuedEventDataSchema,
2851
+ AuditableEvent_OAuth_ConsentGrantedEventDataSchema,
2852
+ AuditableEvent_OAuth_ConsentDeniedEventDataSchema,
2853
+ AuditableEvent_OAuth_ConsentGrantPersistedEventDataSchema,
2854
+ AuditableEvent_OAuth_TokenRefreshedEventDataSchema,
2855
+ AuditableEvent_OAuth_TokenRevokedEventDataSchema,
2856
+ AuditableEvent_OAuth_RpInitiatedLogoutEventDataSchema,
2857
+ AuditableEvent_OAuth_CodeExchangeFailedEventDataSchema,
2858
+ AuditableEvent_OAuth_ConsentBindingViolationEventDataSchema,
2859
+ AuditableEvent_User_RefreshTokenReuseDetectedEventDataSchema,
642
2860
  ]);
643
- //# sourceMappingURL=auditable-events.shared.schema.js.map
2861
+ //# sourceMappingURL=auditable-events.shared.schema.js.map