@openauditmodel/cli 0.4.0 → 0.4.2

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 (339) hide show
  1. package/README.md +5 -5
  2. package/conformance-kit/README.md +109 -0
  3. package/conformance-kit/manifest.json +8023 -0
  4. package/examples/README.md +62 -0
  5. package/examples/integrity/README.md +103 -0
  6. package/examples/integrity/invalid/broken-previous-hash/001.json +53 -0
  7. package/examples/integrity/invalid/broken-previous-hash/002.json +52 -0
  8. package/examples/integrity/invalid/broken-previous-hash/003.json +43 -0
  9. package/examples/integrity/invalid/duplicate-sequence/001.json +53 -0
  10. package/examples/integrity/invalid/duplicate-sequence/002.json +52 -0
  11. package/examples/integrity/invalid/duplicate-sequence/003.json +43 -0
  12. package/examples/integrity/invalid/missing-sequence/001.json +53 -0
  13. package/examples/integrity/invalid/missing-sequence/002.json +51 -0
  14. package/examples/integrity/invalid/missing-sequence/003.json +43 -0
  15. package/examples/integrity/invalid/reordered-chain/001.json +53 -0
  16. package/examples/integrity/invalid/reordered-chain/002.json +52 -0
  17. package/examples/integrity/invalid/reordered-chain/003.json +43 -0
  18. package/examples/integrity/invalid/tampered-event.json +51 -0
  19. package/examples/integrity/invalid/tampered-signed-event.json +46 -0
  20. package/examples/integrity/invalid/unsupported-algorithm.json +51 -0
  21. package/examples/integrity/invalid/unsupported-signature-algorithm.json +46 -0
  22. package/examples/integrity/invalid/wrong-declared-hash.json +51 -0
  23. package/examples/integrity/keys/ed25519-test-public.pem +3 -0
  24. package/examples/integrity/valid/signed-event-ed25519.json +46 -0
  25. package/examples/integrity/valid/single-event-sha256.json +51 -0
  26. package/examples/integrity/valid/three-event-chain/001.json +53 -0
  27. package/examples/integrity/valid/three-event-chain/002.json +52 -0
  28. package/examples/integrity/valid/three-event-chain/003.json +43 -0
  29. package/examples/integrity/valid/unicode-and-number-event.json +68 -0
  30. package/examples/invalid/README.md +38 -0
  31. package/examples/invalid/delegation-without-subject.json +27 -0
  32. package/examples/invalid/failure-without-error.json +28 -0
  33. package/examples/invalid/invalid-event-name.json +22 -0
  34. package/examples/invalid/invalid-extension-name.json +25 -0
  35. package/examples/invalid/missing-actor.json +18 -0
  36. package/examples/invalid/missing-resource.json +18 -0
  37. package/examples/invalid/unknown-core-property.json +23 -0
  38. package/examples/privacy/README.md +101 -0
  39. package/examples/privacy/clean/hashes-and-identifiers.json +42 -0
  40. package/examples/privacy/clean/minimal-clean-event.json +22 -0
  41. package/examples/privacy/clean/safe-evidence-reference.json +43 -0
  42. package/examples/privacy/clean/sanitized-change.json +40 -0
  43. package/examples/privacy/clean/structured-metadata.json +43 -0
  44. package/examples/privacy/findings/access-token-field.json +27 -0
  45. package/examples/privacy/findings/bearer-token.json +26 -0
  46. package/examples/privacy/findings/credentialed-connection-string.json +26 -0
  47. package/examples/privacy/findings/evidence-query-string.json +29 -0
  48. package/examples/privacy/findings/high-entropy-token.json +26 -0
  49. package/examples/privacy/findings/jwt-token.json +26 -0
  50. package/examples/privacy/findings/oversized-change-before.json +89 -0
  51. package/examples/privacy/findings/password-field.json +27 -0
  52. package/examples/privacy/findings/private-key.json +26 -0
  53. package/examples/privacy/findings/raw-response-body.json +26 -0
  54. package/examples/privacy/findings/url-userinfo.json +26 -0
  55. package/examples/profiles/api-and-integration-management/README.md +119 -0
  56. package/examples/profiles/api-and-integration-management/invalid/api-key-create-missing-authentication.json +64 -0
  57. package/examples/profiles/api-and-integration-management/invalid/api-key-create-missing-authorization.json +64 -0
  58. package/examples/profiles/api-and-integration-management/invalid/api-key-rotate-missing-credential-reference.json +58 -0
  59. package/examples/profiles/api-and-integration-management/invalid/integration-configuration-update-missing-connection-id.json +67 -0
  60. package/examples/profiles/api-and-integration-management/invalid/integration-connect-missing-approval-status.json +78 -0
  61. package/examples/profiles/api-and-integration-management/invalid/integration-disconnect-missing-authentication.json +63 -0
  62. package/examples/profiles/api-and-integration-management/invalid/integration-reauthorize-missing-error-type.json +68 -0
  63. package/examples/profiles/api-and-integration-management/invalid/integration-sync-start-missing-correlation-id.json +58 -0
  64. package/examples/profiles/api-and-integration-management/invalid/webhook-create-missing-endpoint-class.json +63 -0
  65. package/examples/profiles/api-and-integration-management/invalid/webhook-create-missing-type.json +63 -0
  66. package/examples/profiles/api-and-integration-management/invalid/webhook-disable-missing-reason.json +58 -0
  67. package/examples/profiles/api-and-integration-management/invalid/webhook-update-missing-change.json +63 -0
  68. package/examples/profiles/api-and-integration-management/not-applicable/api-request.json +45 -0
  69. package/examples/profiles/api-and-integration-management/not-applicable/integration-sync-progress.json +44 -0
  70. package/examples/profiles/api-and-integration-management/not-applicable/webhook-delivery.json +44 -0
  71. package/examples/profiles/api-and-integration-management/valid/api-key-create.json +70 -0
  72. package/examples/profiles/api-and-integration-management/valid/api-key-revoke.json +72 -0
  73. package/examples/profiles/api-and-integration-management/valid/api-key-rotate.json +59 -0
  74. package/examples/profiles/api-and-integration-management/valid/integration-configuration-update.json +68 -0
  75. package/examples/profiles/api-and-integration-management/valid/integration-connect.json +79 -0
  76. package/examples/profiles/api-and-integration-management/valid/integration-disconnect.json +69 -0
  77. package/examples/profiles/api-and-integration-management/valid/integration-reauthorize-failure.json +69 -0
  78. package/examples/profiles/api-and-integration-management/valid/integration-sync-cancel.json +65 -0
  79. package/examples/profiles/api-and-integration-management/valid/integration-sync-start.json +59 -0
  80. package/examples/profiles/api-and-integration-management/valid/webhook-create.json +64 -0
  81. package/examples/profiles/api-and-integration-management/valid/webhook-disable.json +63 -0
  82. package/examples/profiles/api-and-integration-management/valid/webhook-test.json +59 -0
  83. package/examples/profiles/api-and-integration-management/valid/webhook-update.json +76 -0
  84. package/examples/profiles/backup-and-recovery/README.md +127 -0
  85. package/examples/profiles/backup-and-recovery/invalid/backup-complete-missing-backup-id.json +55 -0
  86. package/examples/profiles/backup-and-recovery/invalid/backup-complete-missing-recovery-point.json +55 -0
  87. package/examples/profiles/backup-and-recovery/invalid/backup-create-missing-authorization.json +50 -0
  88. package/examples/profiles/backup-and-recovery/invalid/backup-delete-missing-reason.json +78 -0
  89. package/examples/profiles/backup-and-recovery/invalid/backup-expire-missing-retention-class.json +55 -0
  90. package/examples/profiles/backup-and-recovery/invalid/backup-verify-missing-verification-status.json +66 -0
  91. package/examples/profiles/backup-and-recovery/invalid/policy-update-missing-change.json +65 -0
  92. package/examples/profiles/backup-and-recovery/invalid/recovery-failover-missing-recovery-id.json +71 -0
  93. package/examples/profiles/backup-and-recovery/invalid/recovery-failover-missing-target-scope.json +71 -0
  94. package/examples/profiles/backup-and-recovery/invalid/restore-start-missing-approval.json +66 -0
  95. package/examples/profiles/backup-and-recovery/invalid/restore-start-missing-source-id.json +73 -0
  96. package/examples/profiles/backup-and-recovery/invalid/snapshot-create-missing-snapshot-id.json +57 -0
  97. package/examples/profiles/backup-and-recovery/not-applicable/backup-chunk-write.json +43 -0
  98. package/examples/profiles/backup-and-recovery/not-applicable/restore-progress.json +42 -0
  99. package/examples/profiles/backup-and-recovery/not-applicable/storage-replica-heartbeat.json +37 -0
  100. package/examples/profiles/backup-and-recovery/valid/backup-complete-failed.json +62 -0
  101. package/examples/profiles/backup-and-recovery/valid/backup-complete.json +56 -0
  102. package/examples/profiles/backup-and-recovery/valid/backup-create.json +56 -0
  103. package/examples/profiles/backup-and-recovery/valid/backup-delete.json +83 -0
  104. package/examples/profiles/backup-and-recovery/valid/backup-expire.json +56 -0
  105. package/examples/profiles/backup-and-recovery/valid/backup-verify.json +67 -0
  106. package/examples/profiles/backup-and-recovery/valid/policy-update.json +78 -0
  107. package/examples/profiles/backup-and-recovery/valid/recovery-complete.json +61 -0
  108. package/examples/profiles/backup-and-recovery/valid/recovery-failback.json +72 -0
  109. package/examples/profiles/backup-and-recovery/valid/recovery-failover.json +72 -0
  110. package/examples/profiles/backup-and-recovery/valid/recovery-start.json +61 -0
  111. package/examples/profiles/backup-and-recovery/valid/restore-complete.json +63 -0
  112. package/examples/profiles/backup-and-recovery/valid/restore-start.json +74 -0
  113. package/examples/profiles/backup-and-recovery/valid/snapshot-create.json +58 -0
  114. package/examples/profiles/backup-and-recovery/valid/snapshot-delete.json +60 -0
  115. package/examples/profiles/customer-and-account-management/README.md +127 -0
  116. package/examples/profiles/customer-and-account-management/invalid/account-close-missing-approval.json +70 -0
  117. package/examples/profiles/customer-and-account-management/invalid/account-freeze-missing-restriction-scope.json +83 -0
  118. package/examples/profiles/customer-and-account-management/invalid/account-freeze-missing-status.json +83 -0
  119. package/examples/profiles/customer-and-account-management/invalid/account-limit-missing-before.json +74 -0
  120. package/examples/profiles/customer-and-account-management/invalid/account-open-missing-owner.json +58 -0
  121. package/examples/profiles/customer-and-account-management/invalid/account-status-missing-subject.json +73 -0
  122. package/examples/profiles/customer-and-account-management/invalid/account-update-missing-override-reason.json +67 -0
  123. package/examples/profiles/customer-and-account-management/invalid/customer-close-missing-authorization.json +69 -0
  124. package/examples/profiles/customer-and-account-management/invalid/customer-create-missing-customer-type.json +62 -0
  125. package/examples/profiles/customer-and-account-management/invalid/customer-delete-missing-scope.json +70 -0
  126. package/examples/profiles/customer-and-account-management/invalid/customer-merge-missing-source.json +78 -0
  127. package/examples/profiles/customer-and-account-management/invalid/customer-update-missing-change.json +61 -0
  128. package/examples/profiles/customer-and-account-management/not-applicable/account-balance-view.json +39 -0
  129. package/examples/profiles/customer-and-account-management/not-applicable/customer-profile-view.json +38 -0
  130. package/examples/profiles/customer-and-account-management/not-applicable/customer-search.json +38 -0
  131. package/examples/profiles/customer-and-account-management/valid/account-close-approved.json +78 -0
  132. package/examples/profiles/customer-and-account-management/valid/account-freeze.json +84 -0
  133. package/examples/profiles/customer-and-account-management/valid/account-limit-increase.json +77 -0
  134. package/examples/profiles/customer-and-account-management/valid/account-open.json +59 -0
  135. package/examples/profiles/customer-and-account-management/valid/account-status-on-behalf.json +79 -0
  136. package/examples/profiles/customer-and-account-management/valid/account-update-override.json +72 -0
  137. package/examples/profiles/customer-and-account-management/valid/customer-close.json +75 -0
  138. package/examples/profiles/customer-and-account-management/valid/customer-create.json +63 -0
  139. package/examples/profiles/customer-and-account-management/valid/customer-delete.json +71 -0
  140. package/examples/profiles/customer-and-account-management/valid/customer-merge.json +79 -0
  141. package/examples/profiles/customer-and-account-management/valid/customer-restrict.json +76 -0
  142. package/examples/profiles/customer-and-account-management/valid/customer-update.json +65 -0
  143. package/examples/profiles/deployment-and-change-management/README.md +115 -0
  144. package/examples/profiles/deployment-and-change-management/invalid/cancel-missing-authorization.json +59 -0
  145. package/examples/profiles/deployment-and-change-management/invalid/cancel-missing-reason.json +61 -0
  146. package/examples/profiles/deployment-and-change-management/invalid/change-request-approve-missing-approval.json +57 -0
  147. package/examples/profiles/deployment-and-change-management/invalid/configuration-update-missing-authorization.json +81 -0
  148. package/examples/profiles/deployment-and-change-management/invalid/deploy-approved-missing-approval.json +73 -0
  149. package/examples/profiles/deployment-and-change-management/invalid/deploy-failed-missing-resulting-state.json +71 -0
  150. package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-approval-required.json +67 -0
  151. package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-deployment-id.json +67 -0
  152. package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-environment.json +67 -0
  153. package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-previous-version.json +67 -0
  154. package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-version.json +67 -0
  155. package/examples/profiles/deployment-and-change-management/invalid/deploy-partial-missing-resulting-state.json +68 -0
  156. package/examples/profiles/deployment-and-change-management/invalid/secret-rotate-missing-changed-fields.json +72 -0
  157. package/examples/profiles/deployment-and-change-management/invalid/secret-rotate-missing-reason.json +68 -0
  158. package/examples/profiles/deployment-and-change-management/not-applicable/build-log-append.json +33 -0
  159. package/examples/profiles/deployment-and-change-management/not-applicable/pipeline-poll.json +33 -0
  160. package/examples/profiles/deployment-and-change-management/not-applicable/secret-access.json +39 -0
  161. package/examples/profiles/deployment-and-change-management/valid/change-request-approve.json +69 -0
  162. package/examples/profiles/deployment-and-change-management/valid/configuration-update.json +88 -0
  163. package/examples/profiles/deployment-and-change-management/valid/deploy-approved.json +85 -0
  164. package/examples/profiles/deployment-and-change-management/valid/deploy-automated.json +68 -0
  165. package/examples/profiles/deployment-and-change-management/valid/deploy-failed.json +72 -0
  166. package/examples/profiles/deployment-and-change-management/valid/deploy-partial.json +69 -0
  167. package/examples/profiles/deployment-and-change-management/valid/infrastructure-apply.json +78 -0
  168. package/examples/profiles/deployment-and-change-management/valid/release-approve.json +77 -0
  169. package/examples/profiles/deployment-and-change-management/valid/release-cancel.json +65 -0
  170. package/examples/profiles/deployment-and-change-management/valid/release-create.json +53 -0
  171. package/examples/profiles/deployment-and-change-management/valid/rollback-emergency.json +80 -0
  172. package/examples/profiles/deployment-and-change-management/valid/secret-rotate-emergency.json +73 -0
  173. package/examples/profiles/document-management/README.md +80 -0
  174. package/examples/profiles/document-management/invalid/delete-missing-reason.json +53 -0
  175. package/examples/profiles/document-management/invalid/download-missing-classification.json +46 -0
  176. package/examples/profiles/document-management/invalid/external-share-missing-expiry.json +68 -0
  177. package/examples/profiles/document-management/invalid/external-share-missing-reason.json +64 -0
  178. package/examples/profiles/document-management/invalid/legal-hold-missing-state.json +63 -0
  179. package/examples/profiles/document-management/invalid/permission-grant-missing-grantee.json +57 -0
  180. package/examples/profiles/document-management/invalid/retention-update-missing-class.json +71 -0
  181. package/examples/profiles/document-management/invalid/share-create-missing-permission.json +53 -0
  182. package/examples/profiles/document-management/invalid/share-missing-recipient-type.json +53 -0
  183. package/examples/profiles/document-management/invalid/upload-missing-authorization.json +42 -0
  184. package/examples/profiles/document-management/invalid/version-rollback-missing-previous.json +58 -0
  185. package/examples/profiles/document-management/not-applicable/file-view.json +42 -0
  186. package/examples/profiles/document-management/valid/file-delete.json +58 -0
  187. package/examples/profiles/document-management/valid/file-download.json +47 -0
  188. package/examples/profiles/document-management/valid/file-upload.json +47 -0
  189. package/examples/profiles/document-management/valid/legal-hold-apply.json +64 -0
  190. package/examples/profiles/document-management/valid/permission-grant.json +58 -0
  191. package/examples/profiles/document-management/valid/retention-update.json +72 -0
  192. package/examples/profiles/document-management/valid/share-external.json +69 -0
  193. package/examples/profiles/document-management/valid/share-internal.json +54 -0
  194. package/examples/profiles/document-management/valid/share-revoke.json +56 -0
  195. package/examples/profiles/document-management/valid/version-rollback.json +59 -0
  196. package/examples/profiles/financial-transaction-management/README.md +123 -0
  197. package/examples/profiles/financial-transaction-management/invalid/limit-update-missing-limit-type.json +101 -0
  198. package/examples/profiles/financial-transaction-management/invalid/manual-deposit-missing-change.json +85 -0
  199. package/examples/profiles/financial-transaction-management/invalid/payment-capture-missing-amount.json +69 -0
  200. package/examples/profiles/financial-transaction-management/invalid/payment-capture-missing-authorization.json +65 -0
  201. package/examples/profiles/financial-transaction-management/invalid/payout-missing-direction.json +63 -0
  202. package/examples/profiles/financial-transaction-management/invalid/reconciliation-adjust-missing-change.json +79 -0
  203. package/examples/profiles/financial-transaction-management/invalid/reconciliation-missing-identifier.json +88 -0
  204. package/examples/profiles/financial-transaction-management/invalid/refund-missing-reason.json +70 -0
  205. package/examples/profiles/financial-transaction-management/invalid/reversal-missing-original-transaction.json +84 -0
  206. package/examples/profiles/financial-transaction-management/invalid/transfer-missing-related-resources.json +66 -0
  207. package/examples/profiles/financial-transaction-management/invalid/withdrawal-missing-approval-status.json +96 -0
  208. package/examples/profiles/financial-transaction-management/invalid/withdrawal-missing-correlation.json +96 -0
  209. package/examples/profiles/financial-transaction-management/not-applicable/balance-view.json +36 -0
  210. package/examples/profiles/financial-transaction-management/not-applicable/quote-create.json +33 -0
  211. package/examples/profiles/financial-transaction-management/not-applicable/report-generate.json +36 -0
  212. package/examples/profiles/financial-transaction-management/valid/chargeback-open.json +73 -0
  213. package/examples/profiles/financial-transaction-management/valid/deposit-manual-correction.json +86 -0
  214. package/examples/profiles/financial-transaction-management/valid/limit-update.json +92 -0
  215. package/examples/profiles/financial-transaction-management/valid/payment-capture.json +70 -0
  216. package/examples/profiles/financial-transaction-management/valid/payment-reject.json +76 -0
  217. package/examples/profiles/financial-transaction-management/valid/payout-execute.json +64 -0
  218. package/examples/profiles/financial-transaction-management/valid/reconciliation-adjust.json +85 -0
  219. package/examples/profiles/financial-transaction-management/valid/refund-create.json +75 -0
  220. package/examples/profiles/financial-transaction-management/valid/reversal-execute.json +80 -0
  221. package/examples/profiles/financial-transaction-management/valid/settlement-execute.json +70 -0
  222. package/examples/profiles/financial-transaction-management/valid/transfer-execute.json +74 -0
  223. package/examples/profiles/financial-transaction-management/valid/withdrawal-execute.json +91 -0
  224. package/examples/profiles/identity-and-access-management/README.md +93 -0
  225. package/examples/profiles/identity-and-access-management/invalid/credential-rotate-missing-reason.json +47 -0
  226. package/examples/profiles/identity-and-access-management/invalid/permission-grant-missing-scope.json +54 -0
  227. package/examples/profiles/identity-and-access-management/invalid/privileged-role-without-approval.json +68 -0
  228. package/examples/profiles/identity-and-access-management/invalid/privileged-role-without-mfa.json +83 -0
  229. package/examples/profiles/identity-and-access-management/invalid/role-assign-missing-authorization.json +54 -0
  230. package/examples/profiles/identity-and-access-management/invalid/role-assign-missing-role-id.json +60 -0
  231. package/examples/profiles/identity-and-access-management/invalid/service-account-missing-owner.json +53 -0
  232. package/examples/profiles/identity-and-access-management/not-applicable/document-share.json +49 -0
  233. package/examples/profiles/identity-and-access-management/valid/credential-rotate.json +59 -0
  234. package/examples/profiles/identity-and-access-management/valid/permission-revoke.json +77 -0
  235. package/examples/profiles/identity-and-access-management/valid/role-assign-privileged.json +87 -0
  236. package/examples/profiles/identity-and-access-management/valid/role-assign-standard.json +80 -0
  237. package/examples/profiles/identity-and-access-management/valid/service-account-create.json +55 -0
  238. package/examples/profiles/identity-and-access-management/valid/user-create.json +55 -0
  239. package/examples/profiles/identity-and-access-management/valid/user-disable.json +79 -0
  240. package/examples/profiles/incident-management/README.md +125 -0
  241. package/examples/profiles/incident-management/invalid/assignment-change-missing-assignee.json +69 -0
  242. package/examples/profiles/incident-management/invalid/assignment-change-missing-change.json +59 -0
  243. package/examples/profiles/incident-management/invalid/case-close-missing-approval.json +94 -0
  244. package/examples/profiles/incident-management/invalid/case-close-missing-authorization.json +108 -0
  245. package/examples/profiles/incident-management/invalid/case-close-missing-reason.json +109 -0
  246. package/examples/profiles/incident-management/invalid/case-create-missing-status.json +67 -0
  247. package/examples/profiles/incident-management/invalid/case-reopen-missing-change.json +66 -0
  248. package/examples/profiles/incident-management/invalid/case-reopen-missing-reason.json +72 -0
  249. package/examples/profiles/incident-management/invalid/case-resolve-missing-resolution-type.json +74 -0
  250. package/examples/profiles/incident-management/invalid/corrective-action-verify-missing-method.json +81 -0
  251. package/examples/profiles/incident-management/invalid/priority-change-missing-priority.json +73 -0
  252. package/examples/profiles/incident-management/invalid/rca-approve-missing-approval.json +66 -0
  253. package/examples/profiles/incident-management/invalid/rca-create-missing-method.json +72 -0
  254. package/examples/profiles/incident-management/invalid/sla-breach-missing-target.json +49 -0
  255. package/examples/profiles/incident-management/not-applicable/case-view.json +40 -0
  256. package/examples/profiles/incident-management/not-applicable/monitoring-alert-raise.json +40 -0
  257. package/examples/profiles/incident-management/not-applicable/note-create.json +46 -0
  258. package/examples/profiles/incident-management/valid/assignment-change.json +70 -0
  259. package/examples/profiles/incident-management/valid/case-close.json +114 -0
  260. package/examples/profiles/incident-management/valid/case-create.json +68 -0
  261. package/examples/profiles/incident-management/valid/case-reopen.json +77 -0
  262. package/examples/profiles/incident-management/valid/case-resolve.json +75 -0
  263. package/examples/profiles/incident-management/valid/corrective-action-open.json +72 -0
  264. package/examples/profiles/incident-management/valid/corrective-action-verify.json +82 -0
  265. package/examples/profiles/incident-management/valid/create-short-form.json +64 -0
  266. package/examples/profiles/incident-management/valid/major-declare.json +79 -0
  267. package/examples/profiles/incident-management/valid/priority-change.json +74 -0
  268. package/examples/profiles/incident-management/valid/problem-case-close.json +73 -0
  269. package/examples/profiles/incident-management/valid/rca-approve.json +86 -0
  270. package/examples/profiles/incident-management/valid/rca-create.json +73 -0
  271. package/examples/profiles/incident-management/valid/sla-breach.json +50 -0
  272. package/examples/profiles/message-broker-management/README.md +123 -0
  273. package/examples/profiles/message-broker-management/invalid/acl-grant-missing-principal.json +78 -0
  274. package/examples/profiles/message-broker-management/invalid/configuration-update-missing-change.json +58 -0
  275. package/examples/profiles/message-broker-management/invalid/message-replay-missing-scope.json +76 -0
  276. package/examples/profiles/message-broker-management/invalid/offset-reset-missing-target.json +96 -0
  277. package/examples/profiles/message-broker-management/invalid/queue-purge-missing-destructive-flag.json +79 -0
  278. package/examples/profiles/message-broker-management/invalid/queue-purge-missing-reason.json +77 -0
  279. package/examples/profiles/message-broker-management/invalid/quota-update-missing-dimension.json +72 -0
  280. package/examples/profiles/message-broker-management/invalid/topic-create-missing-authorization.json +61 -0
  281. package/examples/profiles/message-broker-management/invalid/topic-create-missing-classification.json +66 -0
  282. package/examples/profiles/message-broker-management/invalid/topic-create-missing-cluster.json +66 -0
  283. package/examples/profiles/message-broker-management/invalid/topic-delete-denied-missing-error-type.json +68 -0
  284. package/examples/profiles/message-broker-management/invalid/topic-delete-missing-approval.json +65 -0
  285. package/examples/profiles/message-broker-management/not-applicable/consumer-group-rebalance.json +40 -0
  286. package/examples/profiles/message-broker-management/not-applicable/message-consume.json +41 -0
  287. package/examples/profiles/message-broker-management/not-applicable/message-publish.json +41 -0
  288. package/examples/profiles/message-broker-management/valid/acl-grant.json +79 -0
  289. package/examples/profiles/message-broker-management/valid/cluster-upgrade.json +77 -0
  290. package/examples/profiles/message-broker-management/valid/configuration-update.json +65 -0
  291. package/examples/profiles/message-broker-management/valid/consumer-group-delete.json +64 -0
  292. package/examples/profiles/message-broker-management/valid/message-replay.json +77 -0
  293. package/examples/profiles/message-broker-management/valid/offset-reset.json +97 -0
  294. package/examples/profiles/message-broker-management/valid/queue-purge.json +82 -0
  295. package/examples/profiles/message-broker-management/valid/quota-update.json +73 -0
  296. package/examples/profiles/message-broker-management/valid/topic-create.json +67 -0
  297. package/examples/profiles/message-broker-management/valid/topic-delete-denied.json +69 -0
  298. package/examples/profiles/message-broker-management/valid/topic-delete.json +77 -0
  299. package/examples/profiles/message-broker-management/valid/topic-retention-reduce.json +77 -0
  300. package/examples/profiles/secrets-and-key-management/README.md +115 -0
  301. package/examples/profiles/secrets-and-key-management/invalid/certificate-issue-missing-expiry.json +54 -0
  302. package/examples/profiles/secrets-and-key-management/invalid/emergency-reveal-missing-approval.json +61 -0
  303. package/examples/profiles/secrets-and-key-management/invalid/key-destroy-missing-approval.json +56 -0
  304. package/examples/profiles/secrets-and-key-management/invalid/key-generate-missing-owner.json +56 -0
  305. package/examples/profiles/secrets-and-key-management/invalid/key-import-missing-reason.json +59 -0
  306. package/examples/profiles/secrets-and-key-management/invalid/policy-update-missing-change.json +61 -0
  307. package/examples/profiles/secrets-and-key-management/invalid/secret-create-missing-authorization.json +53 -0
  308. package/examples/profiles/secrets-and-key-management/invalid/secret-export-missing-destination.json +74 -0
  309. package/examples/profiles/secrets-and-key-management/invalid/secret-reveal-missing-reason.json +65 -0
  310. package/examples/profiles/secrets-and-key-management/invalid/secret-revoke-missing-reason.json +52 -0
  311. package/examples/profiles/secrets-and-key-management/invalid/secret-rotate-missing-change.json +48 -0
  312. package/examples/profiles/secrets-and-key-management/invalid/secret-rotate-missing-type.json +54 -0
  313. package/examples/profiles/secrets-and-key-management/not-applicable/key-decrypt.json +27 -0
  314. package/examples/profiles/secrets-and-key-management/not-applicable/secret-cache-refresh.json +27 -0
  315. package/examples/profiles/secrets-and-key-management/not-applicable/secret-retrieve.json +27 -0
  316. package/examples/profiles/secrets-and-key-management/valid/certificate-issue.json +55 -0
  317. package/examples/profiles/secrets-and-key-management/valid/key-destroy.json +64 -0
  318. package/examples/profiles/secrets-and-key-management/valid/key-export.json +73 -0
  319. package/examples/profiles/secrets-and-key-management/valid/key-generate.json +57 -0
  320. package/examples/profiles/secrets-and-key-management/valid/key-import.json +64 -0
  321. package/examples/profiles/secrets-and-key-management/valid/secret-create.json +59 -0
  322. package/examples/profiles/secrets-and-key-management/valid/secret-export.json +75 -0
  323. package/examples/profiles/secrets-and-key-management/valid/secret-policy-update.json +68 -0
  324. package/examples/profiles/secrets-and-key-management/valid/secret-reveal-emergency.json +68 -0
  325. package/examples/profiles/secrets-and-key-management/valid/secret-reveal.json +70 -0
  326. package/examples/profiles/secrets-and-key-management/valid/secret-revoke.json +57 -0
  327. package/examples/profiles/secrets-and-key-management/valid/secret-rotate.json +55 -0
  328. package/examples/valid/access-request-approval.json +47 -0
  329. package/examples/valid/document-external-share.json +92 -0
  330. package/examples/valid/incident-case-close.json +114 -0
  331. package/examples/valid/kafka-consumer-offset-reset.json +105 -0
  332. package/examples/valid/minimal-event.json +22 -0
  333. package/examples/valid/nightly-reconciliation-job.json +33 -0
  334. package/examples/valid/order-api-publish.json +34 -0
  335. package/examples/valid/order-consumer-new-trace.json +36 -0
  336. package/examples/valid/privileged-configuration-change.json +109 -0
  337. package/examples/valid/service-account-data-export.json +83 -0
  338. package/examples/valid/user-role-assignment.json +92 -0
  339. package/package.json +6 -2
@@ -0,0 +1,62 @@
1
+ # Examples
2
+
3
+ **Status: Informative.** Examples illustrate the model; they are not normative and they do not
4
+ extend or restrict the [OpenAuditModel Core Specification](../specification/overview.md).
5
+
6
+ Every file in [valid/](valid/) MUST validate against the
7
+ [OpenAuditModel Audit Event Schema](../schemas/v0.1/audit-event.schema.json). Every file in
8
+ [invalid/](invalid/) MUST fail validation, each for a single documented reason. Both properties are
9
+ enforced by the conformance test suite, so the examples act as regression fixtures rather than
10
+ decoration.
11
+
12
+ ## Validating the examples
13
+
14
+ ```bash
15
+ npm run build
16
+ node dist/conformance/src/cli.js validate examples/valid
17
+ node dist/conformance/src/cli.js validate examples/invalid # expected to exit 1
18
+ ```
19
+
20
+ ## Valid examples
21
+
22
+ | File | Event | Demonstrates |
23
+ | ---------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------- |
24
+ | [minimal-event.json](valid/minimal-event.json) | `data.record.update` | The seven required fields and nothing else |
25
+ | [user-role-assignment.json](valid/user-role-assignment.json) | `identity.role.assign` | Administrative action with authorization, approval, reason, change and organization |
26
+ | [document-external-share.json](valid/document-external-share.json) | `document.share.create` | External sharing with authentication, privacy, control categories and an extension |
27
+ | [incident-case-close.json](valid/incident-case-close.json) | `incident.case.close` | Workflow closure with approvals, evidence references and trace correlation |
28
+ | [privileged-configuration-change.json](valid/privileged-configuration-change.json) | `configuration.setting.update` | Privileged change with sanitized before and after state and an integrity chain |
29
+ | [kafka-consumer-offset-reset.json](valid/kafka-consumer-offset-reset.json) | `kafka.consumer.offset-reset` | Message broker operation with related resources and offsets, without payloads |
30
+ | [service-account-data-export.json](valid/service-account-data-export.json) | `data.export.create` | Service actor acting on behalf of a user subject, with privacy context |
31
+ | [order-api-publish.json](valid/order-api-publish.json) | `order.submission.accept` | HTTP entry point establishing request, trace and correlation identifiers |
32
+ | [order-consumer-new-trace.json](valid/order-consumer-new-trace.json) | `order.fulfilment.start` | Message consumer starting a new trace while keeping the business correlation |
33
+ | [nightly-reconciliation-job.json](valid/nightly-reconciliation-job.json) | `billing.reconciliation.complete` | Scheduled job correlated by job run, with no request or trace context |
34
+ | [access-request-approval.json](valid/access-request-approval.json) | `iam.access-request.approve` | Approval workflow where request and approval identifiers coexist |
35
+
36
+ None of these examples name a real product, company, jurisdiction or regulation. Domain names used
37
+ in example values are drawn from the ranges reserved for documentation by RFC 2606.
38
+
39
+ ## Invalid examples
40
+
41
+ Each invalid example is a realistic event that has exactly one defect, so that a validator's output
42
+ can be checked precisely. See [invalid/README.md](invalid/README.md) for the expected failure of
43
+ each file.
44
+
45
+ ## Integrity fixtures
46
+
47
+ [integrity/](integrity/) holds a separate, **generated** fixture set for tamper-evidence
48
+ verification: sealed events, a linked chain, and events that have been modified, re-linked,
49
+ re-sequenced or relabelled. Every one of them is a schema-valid event — they fail verification, not
50
+ validation, which is why they live apart from the sets above. See
51
+ [integrity/README.md](integrity/README.md).
52
+
53
+ ```bash
54
+ node dist/conformance/src/cli.js verify-integrity examples/integrity/valid/single-event-sha256.json
55
+ node dist/conformance/src/cli.js verify-chain examples/integrity/valid/three-event-chain
56
+ ```
57
+
58
+ ## Optional fields are optional
59
+
60
+ `minimal-event.json` is deliberately small. An event is not "better" because it fills more fields.
61
+ Producers SHOULD populate the fields their audit purpose requires and omit the rest; see
62
+ [design-principles.md](../specification/design-principles.md).
@@ -0,0 +1,103 @@
1
+ # Integrity fixtures
2
+
3
+ **Status: Informative.** These fixtures illustrate and regression-test tamper-evidence verification.
4
+ They are not normative; the normative digest procedure is
5
+ [specification/integrity.md](../../specification/integrity.md) §4.
6
+
7
+ Every fixture is **generated**, never hand-edited. They carry real digests, so a single edited
8
+ character invalidates a hash — and a hand-corrected hash would hide whatever the edit broke. The
9
+ generator is [`conformance/tools/generate-integrity-fixtures.ts`](../../conformance/tools/generate-integrity-fixtures.ts)
10
+ and it uses the same digest code the verifier uses, so a fixture cannot encode a procedure the
11
+ implementation does not follow.
12
+
13
+ ```bash
14
+ npm run fixtures:integrity # regenerate and reformat
15
+ ```
16
+
17
+ A test compares the on-disk content with what the generator produces, so drift fails the build.
18
+ Nothing writes fixtures during a normal test run.
19
+
20
+ ## Verifying them
21
+
22
+ ```bash
23
+ auditmodel verify-integrity examples/integrity/valid/single-event-sha256.json
24
+ auditmodel verify-chain examples/integrity/valid/three-event-chain
25
+ auditmodel verify-integrity examples/integrity/valid/signed-event-ed25519.json \
26
+ --public-key examples/integrity/keys/ed25519-test-public.pem
27
+ ```
28
+
29
+ Every fixture in this directory, valid and invalid alike, is a **schema-valid** event. The invalid
30
+ ones fail verification, not validation — that is the point of separating the two commands.
31
+
32
+ ## Keys
33
+
34
+ [keys/ed25519-test-public.pem](keys/ed25519-test-public.pem) is the public half of a TEST-ONLY Ed25519
35
+ key pair generated solely to make `signed-event-ed25519.json` and its invalid variants reproducible by
36
+ the fixture generator, the same way their hashes are. **The private half is committed in the generator
37
+ itself and is not a secret** — anyone can produce a "validly signed" event under this key, which is
38
+ exactly why a real signing key must never be generated this way or checked into a repository.
39
+
40
+ ## Valid fixtures
41
+
42
+ | Fixture | Demonstrates |
43
+ | -------------------------------------------------------------------- | -------------------------------------------------------------------------- |
44
+ | [single-event-sha256.json](valid/single-event-sha256.json) | A sealed event with no chain |
45
+ | [unicode-and-number-event.json](valid/unicode-and-number-event.json) | RFC 8785 determinism over mixed scripts, escapes, number forms and nesting |
46
+ | [signed-event-ed25519.json](valid/signed-event-ed25519.json) | A sealed event additionally signed; verifiable with `--public-key` |
47
+ | [three-event-chain/](valid/three-event-chain/) | A genesis event and two linked successors, sequences 1 to 3 |
48
+
49
+ `unicode-and-number-event.json` deliberately stores its members out of sorted order, mixes upper and
50
+ lower case keys, digit keys, Latin-1 and CJK keys, a non-BMP character, combining marks, control
51
+ character escapes, and numbers that exercise the ECMAScript number-to-string forms (`1e+21`, `1e-7`,
52
+ `0.000001`). Canonicalization has to normalise all of it before the digest is stable.
53
+
54
+ ## Invalid fixtures
55
+
56
+ Each fails verification for one documented reason. The expectations are asserted by
57
+ [`integrity-event.test.ts`](../../conformance/tests/integrity-event.test.ts) and
58
+ [`integrity-chain.test.ts`](../../conformance/tests/integrity-chain.test.ts).
59
+
60
+ | Fixture | Defect | Finding |
61
+ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------- | --------------------------------- |
62
+ | [tampered-event.json](invalid/tampered-event.json) | Content changed after sealing; declared hash untouched | `hash-mismatch` |
63
+ | [wrong-declared-hash.json](invalid/wrong-declared-hash.json) | Content untouched; declared hash is a digest of another event | `hash-mismatch` |
64
+ | [unsupported-algorithm.json](invalid/unsupported-algorithm.json) | Declares `BLAKE3`, which the v0.1 verifier does not implement | `unsupported-algorithm` |
65
+ | [tampered-signed-event.json](invalid/tampered-signed-event.json) | Content changed after signing; hash fails before the signature is reached | `hash-mismatch` |
66
+ | [unsupported-signature-algorithm.json](invalid/unsupported-signature-algorithm.json) | Declares `ECDSA-P256-SHA256`, not yet implemented | `unsupported-signature-algorithm` |
67
+ | [broken-previous-hash/](invalid/broken-previous-hash/) | Event 3 re-linked past event 2 and re-sealed | `broken-link` |
68
+ | [duplicate-sequence/](invalid/duplicate-sequence/) | Two events declare sequence 2 | `duplicate-sequence` |
69
+ | [missing-sequence/](invalid/missing-sequence/) | Event 2 declares no sequence | `sequence-missing` |
70
+ | [reordered-chain/](invalid/reordered-chain/) | Events 2 and 3 swap sequence numbers without re-sealing | `hash-mismatch` |
71
+
72
+ ### Why some of these look similar
73
+
74
+ **`tampered-event` and `wrong-declared-hash` both report `hash-mismatch`** and are different attacks.
75
+ In the first, the event changed and the hash did not. In the second, the event is exactly as sealed
76
+ and the hash was replaced. A verifier cannot tell them apart from one event — which is worth knowing,
77
+ and is why both are published.
78
+
79
+ **`broken-previous-hash` is the interesting one.** Every event's own digest is valid; running
80
+ `verify-integrity` over all three files reports three successes. Only chain verification finds the
81
+ problem, because the defect is not in any event but in the relationship between them. This is the
82
+ fixture that shows what chaining adds.
83
+
84
+ **`unsupported-algorithm.json` was sealed with SHA-256 and then relabelled.** Its hash is a real
85
+ digest, under a different algorithm than the one it declares. The verifier refuses on the algorithm
86
+ before it compares anything, which is the intended behaviour: the schema accepts the identifier, and
87
+ acceptance is not support.
88
+
89
+ **`reordered-chain` fails on digests rather than links** because `sequence` is part of the digest
90
+ input. Swapping two events' positions invalidates both of them without anything else being touched —
91
+ which is precisely the reason chain metadata is inside the digest. See
92
+ [ADR 0006](../../decisions/0006-event-digest-and-chain-verification.md).
93
+
94
+ **`tampered-signed-event.json` reports `hash-mismatch`, never a signature finding**, even with
95
+ `--public-key` supplied. Hash verification runs first; a mismatch there is reported and the signature
96
+ is never reached. The signature would in fact also fail — the content changed after both sealing and
97
+ signing — but the tool reports the first problem it finds, not every problem that exists.
98
+
99
+ ## What these fixtures cannot show
100
+
101
+ No fixture demonstrates tail truncation, because a truncated chain is internally consistent and there
102
+ is nothing to detect. That limitation is real, is not an implementation defect, and is stated in
103
+ [integrity.md](../../specification/integrity.md) §8.
@@ -0,0 +1,53 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556601",
4
+ "time": "2026-04-03T08:00:12.500Z",
5
+ "sequence": 1,
6
+ "event": {
7
+ "name": "privileged.access.grant",
8
+ "category": "privileged-operation",
9
+ "type": "grant",
10
+ "outcome": "success",
11
+ "severity": "critical",
12
+ "summary": "Time-bound platform administrator access granted for a change window."
13
+ },
14
+ "actor": {
15
+ "type": "user",
16
+ "id": "user-1180",
17
+ "roles": ["access-approver"]
18
+ },
19
+ "resource": {
20
+ "type": "user",
21
+ "id": "admin-0091"
22
+ },
23
+ "application": {
24
+ "name": "platform-control-service",
25
+ "environment": "production",
26
+ "instance": "instance-7c1a"
27
+ },
28
+ "authorization": {
29
+ "decision": "allow",
30
+ "policy": "just-in-time-access"
31
+ },
32
+ "approval": {
33
+ "status": "approved",
34
+ "requiredApprovals": 1,
35
+ "receivedApprovals": 1,
36
+ "approvedAt": "2026-04-03T07:58:40Z"
37
+ },
38
+ "reason": {
39
+ "code": "scheduled-maintenance",
40
+ "reference": "change-10241"
41
+ },
42
+ "controlCategories": ["privileged-access", "change-approval"],
43
+ "metadata": {
44
+ "grantedRole": "platform-administrator",
45
+ "expiresAt": "2026-04-03T10:00:00Z"
46
+ },
47
+ "integrity": {
48
+ "canonicalization": "RFC8785",
49
+ "hashAlgorithm": "SHA-256",
50
+ "hash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
51
+ "chainId": "chain-platform-control-service-instance-7c1a"
52
+ }
53
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556602",
4
+ "time": "2026-04-03T08:14:31.882Z",
5
+ "sequence": 2,
6
+ "event": {
7
+ "name": "configuration.setting.update",
8
+ "category": "configuration",
9
+ "type": "update",
10
+ "outcome": "success",
11
+ "severity": "critical",
12
+ "summary": "Session lifetime reduced under the approved change window."
13
+ },
14
+ "actor": {
15
+ "type": "admin",
16
+ "id": "admin-0091",
17
+ "roles": ["platform-administrator"]
18
+ },
19
+ "resource": {
20
+ "type": "configuration",
21
+ "id": "configuration-authentication-session",
22
+ "classification": "restricted"
23
+ },
24
+ "application": {
25
+ "name": "platform-control-service",
26
+ "environment": "production",
27
+ "instance": "instance-7c1a"
28
+ },
29
+ "authorization": {
30
+ "decision": "allow",
31
+ "policy": "privileged-configuration-change"
32
+ },
33
+ "change": {
34
+ "type": "update",
35
+ "changedFields": ["sessionLifetimeMinutes"],
36
+ "before": {
37
+ "sessionLifetimeMinutes": 720
38
+ },
39
+ "after": {
40
+ "sessionLifetimeMinutes": 60
41
+ },
42
+ "ticketId": "change-10241"
43
+ },
44
+ "controlCategories": ["configuration-integrity", "privileged-access"],
45
+ "integrity": {
46
+ "canonicalization": "RFC8785",
47
+ "hashAlgorithm": "SHA-256",
48
+ "hash": "f7fbea247bdde9c24f07d81cb6ba82b60372f293b2d618066b065bac880dcbf1",
49
+ "previousHash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
50
+ "chainId": "chain-platform-control-service-instance-7c1a"
51
+ }
52
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556603",
4
+ "time": "2026-04-03T09:47:02.310Z",
5
+ "sequence": 3,
6
+ "event": {
7
+ "name": "privileged.access.revoke",
8
+ "category": "privileged-operation",
9
+ "type": "revoke",
10
+ "outcome": "success",
11
+ "severity": "high",
12
+ "summary": "Time-bound platform administrator access revoked after the change window."
13
+ },
14
+ "actor": {
15
+ "type": "system",
16
+ "id": "system-access-expiry"
17
+ },
18
+ "resource": {
19
+ "type": "user",
20
+ "id": "admin-0091"
21
+ },
22
+ "application": {
23
+ "name": "platform-control-service",
24
+ "environment": "production",
25
+ "instance": "instance-7c1a"
26
+ },
27
+ "authorization": {
28
+ "decision": "allow",
29
+ "policy": "just-in-time-access"
30
+ },
31
+ "reason": {
32
+ "code": "grant-expired",
33
+ "reference": "change-10241"
34
+ },
35
+ "controlCategories": ["privileged-access"],
36
+ "integrity": {
37
+ "canonicalization": "RFC8785",
38
+ "hashAlgorithm": "SHA-256",
39
+ "hash": "4bbda78fbc493dc72f068e22cb4cbbb22bc816ca8c68ffb3c9e3bc4ef54ae946",
40
+ "previousHash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
41
+ "chainId": "chain-platform-control-service-instance-7c1a"
42
+ }
43
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556601",
4
+ "time": "2026-04-03T08:00:12.500Z",
5
+ "sequence": 1,
6
+ "event": {
7
+ "name": "privileged.access.grant",
8
+ "category": "privileged-operation",
9
+ "type": "grant",
10
+ "outcome": "success",
11
+ "severity": "critical",
12
+ "summary": "Time-bound platform administrator access granted for a change window."
13
+ },
14
+ "actor": {
15
+ "type": "user",
16
+ "id": "user-1180",
17
+ "roles": ["access-approver"]
18
+ },
19
+ "resource": {
20
+ "type": "user",
21
+ "id": "admin-0091"
22
+ },
23
+ "application": {
24
+ "name": "platform-control-service",
25
+ "environment": "production",
26
+ "instance": "instance-7c1a"
27
+ },
28
+ "authorization": {
29
+ "decision": "allow",
30
+ "policy": "just-in-time-access"
31
+ },
32
+ "approval": {
33
+ "status": "approved",
34
+ "requiredApprovals": 1,
35
+ "receivedApprovals": 1,
36
+ "approvedAt": "2026-04-03T07:58:40Z"
37
+ },
38
+ "reason": {
39
+ "code": "scheduled-maintenance",
40
+ "reference": "change-10241"
41
+ },
42
+ "controlCategories": ["privileged-access", "change-approval"],
43
+ "metadata": {
44
+ "grantedRole": "platform-administrator",
45
+ "expiresAt": "2026-04-03T10:00:00Z"
46
+ },
47
+ "integrity": {
48
+ "canonicalization": "RFC8785",
49
+ "hashAlgorithm": "SHA-256",
50
+ "hash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
51
+ "chainId": "chain-platform-control-service-instance-7c1a"
52
+ }
53
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556602",
4
+ "time": "2026-04-03T08:14:31.882Z",
5
+ "sequence": 2,
6
+ "event": {
7
+ "name": "configuration.setting.update",
8
+ "category": "configuration",
9
+ "type": "update",
10
+ "outcome": "success",
11
+ "severity": "critical",
12
+ "summary": "Session lifetime reduced under the approved change window."
13
+ },
14
+ "actor": {
15
+ "type": "admin",
16
+ "id": "admin-0091",
17
+ "roles": ["platform-administrator"]
18
+ },
19
+ "resource": {
20
+ "type": "configuration",
21
+ "id": "configuration-authentication-session",
22
+ "classification": "restricted"
23
+ },
24
+ "application": {
25
+ "name": "platform-control-service",
26
+ "environment": "production",
27
+ "instance": "instance-7c1a"
28
+ },
29
+ "authorization": {
30
+ "decision": "allow",
31
+ "policy": "privileged-configuration-change"
32
+ },
33
+ "change": {
34
+ "type": "update",
35
+ "changedFields": ["sessionLifetimeMinutes"],
36
+ "before": {
37
+ "sessionLifetimeMinutes": 720
38
+ },
39
+ "after": {
40
+ "sessionLifetimeMinutes": 60
41
+ },
42
+ "ticketId": "change-10241"
43
+ },
44
+ "controlCategories": ["configuration-integrity", "privileged-access"],
45
+ "integrity": {
46
+ "canonicalization": "RFC8785",
47
+ "hashAlgorithm": "SHA-256",
48
+ "hash": "f7fbea247bdde9c24f07d81cb6ba82b60372f293b2d618066b065bac880dcbf1",
49
+ "previousHash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
50
+ "chainId": "chain-platform-control-service-instance-7c1a"
51
+ }
52
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556603",
4
+ "time": "2026-04-03T09:47:02.310Z",
5
+ "sequence": 2,
6
+ "event": {
7
+ "name": "privileged.access.revoke",
8
+ "category": "privileged-operation",
9
+ "type": "revoke",
10
+ "outcome": "success",
11
+ "severity": "high",
12
+ "summary": "Time-bound platform administrator access revoked after the change window."
13
+ },
14
+ "actor": {
15
+ "type": "system",
16
+ "id": "system-access-expiry"
17
+ },
18
+ "resource": {
19
+ "type": "user",
20
+ "id": "admin-0091"
21
+ },
22
+ "application": {
23
+ "name": "platform-control-service",
24
+ "environment": "production",
25
+ "instance": "instance-7c1a"
26
+ },
27
+ "authorization": {
28
+ "decision": "allow",
29
+ "policy": "just-in-time-access"
30
+ },
31
+ "reason": {
32
+ "code": "grant-expired",
33
+ "reference": "change-10241"
34
+ },
35
+ "controlCategories": ["privileged-access"],
36
+ "integrity": {
37
+ "canonicalization": "RFC8785",
38
+ "hashAlgorithm": "SHA-256",
39
+ "hash": "9242f739b091e1ad17d2406f383064cba121d579f7162f9fd0bdad43445bcab5",
40
+ "previousHash": "f7fbea247bdde9c24f07d81cb6ba82b60372f293b2d618066b065bac880dcbf1",
41
+ "chainId": "chain-platform-control-service-instance-7c1a"
42
+ }
43
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556601",
4
+ "time": "2026-04-03T08:00:12.500Z",
5
+ "sequence": 1,
6
+ "event": {
7
+ "name": "privileged.access.grant",
8
+ "category": "privileged-operation",
9
+ "type": "grant",
10
+ "outcome": "success",
11
+ "severity": "critical",
12
+ "summary": "Time-bound platform administrator access granted for a change window."
13
+ },
14
+ "actor": {
15
+ "type": "user",
16
+ "id": "user-1180",
17
+ "roles": ["access-approver"]
18
+ },
19
+ "resource": {
20
+ "type": "user",
21
+ "id": "admin-0091"
22
+ },
23
+ "application": {
24
+ "name": "platform-control-service",
25
+ "environment": "production",
26
+ "instance": "instance-7c1a"
27
+ },
28
+ "authorization": {
29
+ "decision": "allow",
30
+ "policy": "just-in-time-access"
31
+ },
32
+ "approval": {
33
+ "status": "approved",
34
+ "requiredApprovals": 1,
35
+ "receivedApprovals": 1,
36
+ "approvedAt": "2026-04-03T07:58:40Z"
37
+ },
38
+ "reason": {
39
+ "code": "scheduled-maintenance",
40
+ "reference": "change-10241"
41
+ },
42
+ "controlCategories": ["privileged-access", "change-approval"],
43
+ "metadata": {
44
+ "grantedRole": "platform-administrator",
45
+ "expiresAt": "2026-04-03T10:00:00Z"
46
+ },
47
+ "integrity": {
48
+ "canonicalization": "RFC8785",
49
+ "hashAlgorithm": "SHA-256",
50
+ "hash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
51
+ "chainId": "chain-platform-control-service-instance-7c1a"
52
+ }
53
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556602",
4
+ "time": "2026-04-03T08:14:31.882Z",
5
+ "event": {
6
+ "name": "configuration.setting.update",
7
+ "category": "configuration",
8
+ "type": "update",
9
+ "outcome": "success",
10
+ "severity": "critical",
11
+ "summary": "Session lifetime reduced under the approved change window."
12
+ },
13
+ "actor": {
14
+ "type": "admin",
15
+ "id": "admin-0091",
16
+ "roles": ["platform-administrator"]
17
+ },
18
+ "resource": {
19
+ "type": "configuration",
20
+ "id": "configuration-authentication-session",
21
+ "classification": "restricted"
22
+ },
23
+ "application": {
24
+ "name": "platform-control-service",
25
+ "environment": "production",
26
+ "instance": "instance-7c1a"
27
+ },
28
+ "authorization": {
29
+ "decision": "allow",
30
+ "policy": "privileged-configuration-change"
31
+ },
32
+ "change": {
33
+ "type": "update",
34
+ "changedFields": ["sessionLifetimeMinutes"],
35
+ "before": {
36
+ "sessionLifetimeMinutes": 720
37
+ },
38
+ "after": {
39
+ "sessionLifetimeMinutes": 60
40
+ },
41
+ "ticketId": "change-10241"
42
+ },
43
+ "controlCategories": ["configuration-integrity", "privileged-access"],
44
+ "integrity": {
45
+ "canonicalization": "RFC8785",
46
+ "hashAlgorithm": "SHA-256",
47
+ "hash": "557de61a068bedcdfa8d7d7a9e037bca3e1ebf633a29514718ad2f3716b33fac",
48
+ "previousHash": "3e9462f941036e9b676694cf80fcf17bb438ddff9fb4fb6f67220eca3399ba1b",
49
+ "chainId": "chain-platform-control-service-instance-7c1a"
50
+ }
51
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "specVersion": "0.1",
3
+ "id": "018f2a30-1111-7222-8333-444455556603",
4
+ "time": "2026-04-03T09:47:02.310Z",
5
+ "sequence": 3,
6
+ "event": {
7
+ "name": "privileged.access.revoke",
8
+ "category": "privileged-operation",
9
+ "type": "revoke",
10
+ "outcome": "success",
11
+ "severity": "high",
12
+ "summary": "Time-bound platform administrator access revoked after the change window."
13
+ },
14
+ "actor": {
15
+ "type": "system",
16
+ "id": "system-access-expiry"
17
+ },
18
+ "resource": {
19
+ "type": "user",
20
+ "id": "admin-0091"
21
+ },
22
+ "application": {
23
+ "name": "platform-control-service",
24
+ "environment": "production",
25
+ "instance": "instance-7c1a"
26
+ },
27
+ "authorization": {
28
+ "decision": "allow",
29
+ "policy": "just-in-time-access"
30
+ },
31
+ "reason": {
32
+ "code": "grant-expired",
33
+ "reference": "change-10241"
34
+ },
35
+ "controlCategories": ["privileged-access"],
36
+ "integrity": {
37
+ "canonicalization": "RFC8785",
38
+ "hashAlgorithm": "SHA-256",
39
+ "hash": "ca46e4456cbc20596cea99d5ed08e09f60857936e5dcc6940607b9ec9ffd01df",
40
+ "previousHash": "557de61a068bedcdfa8d7d7a9e037bca3e1ebf633a29514718ad2f3716b33fac",
41
+ "chainId": "chain-platform-control-service-instance-7c1a"
42
+ }
43
+ }