@openauditmodel/cli 0.4.1 → 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.
- package/README.md +1 -1
- package/conformance-kit/README.md +109 -0
- package/conformance-kit/manifest.json +8023 -0
- package/examples/README.md +62 -0
- package/examples/integrity/README.md +103 -0
- package/examples/integrity/invalid/broken-previous-hash/001.json +53 -0
- package/examples/integrity/invalid/broken-previous-hash/002.json +52 -0
- package/examples/integrity/invalid/broken-previous-hash/003.json +43 -0
- package/examples/integrity/invalid/duplicate-sequence/001.json +53 -0
- package/examples/integrity/invalid/duplicate-sequence/002.json +52 -0
- package/examples/integrity/invalid/duplicate-sequence/003.json +43 -0
- package/examples/integrity/invalid/missing-sequence/001.json +53 -0
- package/examples/integrity/invalid/missing-sequence/002.json +51 -0
- package/examples/integrity/invalid/missing-sequence/003.json +43 -0
- package/examples/integrity/invalid/reordered-chain/001.json +53 -0
- package/examples/integrity/invalid/reordered-chain/002.json +52 -0
- package/examples/integrity/invalid/reordered-chain/003.json +43 -0
- package/examples/integrity/invalid/tampered-event.json +51 -0
- package/examples/integrity/invalid/tampered-signed-event.json +46 -0
- package/examples/integrity/invalid/unsupported-algorithm.json +51 -0
- package/examples/integrity/invalid/unsupported-signature-algorithm.json +46 -0
- package/examples/integrity/invalid/wrong-declared-hash.json +51 -0
- package/examples/integrity/keys/ed25519-test-public.pem +3 -0
- package/examples/integrity/valid/signed-event-ed25519.json +46 -0
- package/examples/integrity/valid/single-event-sha256.json +51 -0
- package/examples/integrity/valid/three-event-chain/001.json +53 -0
- package/examples/integrity/valid/three-event-chain/002.json +52 -0
- package/examples/integrity/valid/three-event-chain/003.json +43 -0
- package/examples/integrity/valid/unicode-and-number-event.json +68 -0
- package/examples/invalid/README.md +38 -0
- package/examples/invalid/delegation-without-subject.json +27 -0
- package/examples/invalid/failure-without-error.json +28 -0
- package/examples/invalid/invalid-event-name.json +22 -0
- package/examples/invalid/invalid-extension-name.json +25 -0
- package/examples/invalid/missing-actor.json +18 -0
- package/examples/invalid/missing-resource.json +18 -0
- package/examples/invalid/unknown-core-property.json +23 -0
- package/examples/privacy/README.md +101 -0
- package/examples/privacy/clean/hashes-and-identifiers.json +42 -0
- package/examples/privacy/clean/minimal-clean-event.json +22 -0
- package/examples/privacy/clean/safe-evidence-reference.json +43 -0
- package/examples/privacy/clean/sanitized-change.json +40 -0
- package/examples/privacy/clean/structured-metadata.json +43 -0
- package/examples/privacy/findings/access-token-field.json +27 -0
- package/examples/privacy/findings/bearer-token.json +26 -0
- package/examples/privacy/findings/credentialed-connection-string.json +26 -0
- package/examples/privacy/findings/evidence-query-string.json +29 -0
- package/examples/privacy/findings/high-entropy-token.json +26 -0
- package/examples/privacy/findings/jwt-token.json +26 -0
- package/examples/privacy/findings/oversized-change-before.json +89 -0
- package/examples/privacy/findings/password-field.json +27 -0
- package/examples/privacy/findings/private-key.json +26 -0
- package/examples/privacy/findings/raw-response-body.json +26 -0
- package/examples/privacy/findings/url-userinfo.json +26 -0
- package/examples/profiles/api-and-integration-management/README.md +119 -0
- package/examples/profiles/api-and-integration-management/invalid/api-key-create-missing-authentication.json +64 -0
- package/examples/profiles/api-and-integration-management/invalid/api-key-create-missing-authorization.json +64 -0
- package/examples/profiles/api-and-integration-management/invalid/api-key-rotate-missing-credential-reference.json +58 -0
- package/examples/profiles/api-and-integration-management/invalid/integration-configuration-update-missing-connection-id.json +67 -0
- package/examples/profiles/api-and-integration-management/invalid/integration-connect-missing-approval-status.json +78 -0
- package/examples/profiles/api-and-integration-management/invalid/integration-disconnect-missing-authentication.json +63 -0
- package/examples/profiles/api-and-integration-management/invalid/integration-reauthorize-missing-error-type.json +68 -0
- package/examples/profiles/api-and-integration-management/invalid/integration-sync-start-missing-correlation-id.json +58 -0
- package/examples/profiles/api-and-integration-management/invalid/webhook-create-missing-endpoint-class.json +63 -0
- package/examples/profiles/api-and-integration-management/invalid/webhook-create-missing-type.json +63 -0
- package/examples/profiles/api-and-integration-management/invalid/webhook-disable-missing-reason.json +58 -0
- package/examples/profiles/api-and-integration-management/invalid/webhook-update-missing-change.json +63 -0
- package/examples/profiles/api-and-integration-management/not-applicable/api-request.json +45 -0
- package/examples/profiles/api-and-integration-management/not-applicable/integration-sync-progress.json +44 -0
- package/examples/profiles/api-and-integration-management/not-applicable/webhook-delivery.json +44 -0
- package/examples/profiles/api-and-integration-management/valid/api-key-create.json +70 -0
- package/examples/profiles/api-and-integration-management/valid/api-key-revoke.json +72 -0
- package/examples/profiles/api-and-integration-management/valid/api-key-rotate.json +59 -0
- package/examples/profiles/api-and-integration-management/valid/integration-configuration-update.json +68 -0
- package/examples/profiles/api-and-integration-management/valid/integration-connect.json +79 -0
- package/examples/profiles/api-and-integration-management/valid/integration-disconnect.json +69 -0
- package/examples/profiles/api-and-integration-management/valid/integration-reauthorize-failure.json +69 -0
- package/examples/profiles/api-and-integration-management/valid/integration-sync-cancel.json +65 -0
- package/examples/profiles/api-and-integration-management/valid/integration-sync-start.json +59 -0
- package/examples/profiles/api-and-integration-management/valid/webhook-create.json +64 -0
- package/examples/profiles/api-and-integration-management/valid/webhook-disable.json +63 -0
- package/examples/profiles/api-and-integration-management/valid/webhook-test.json +59 -0
- package/examples/profiles/api-and-integration-management/valid/webhook-update.json +76 -0
- package/examples/profiles/backup-and-recovery/README.md +127 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-complete-missing-backup-id.json +55 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-complete-missing-recovery-point.json +55 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-create-missing-authorization.json +50 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-delete-missing-reason.json +78 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-expire-missing-retention-class.json +55 -0
- package/examples/profiles/backup-and-recovery/invalid/backup-verify-missing-verification-status.json +66 -0
- package/examples/profiles/backup-and-recovery/invalid/policy-update-missing-change.json +65 -0
- package/examples/profiles/backup-and-recovery/invalid/recovery-failover-missing-recovery-id.json +71 -0
- package/examples/profiles/backup-and-recovery/invalid/recovery-failover-missing-target-scope.json +71 -0
- package/examples/profiles/backup-and-recovery/invalid/restore-start-missing-approval.json +66 -0
- package/examples/profiles/backup-and-recovery/invalid/restore-start-missing-source-id.json +73 -0
- package/examples/profiles/backup-and-recovery/invalid/snapshot-create-missing-snapshot-id.json +57 -0
- package/examples/profiles/backup-and-recovery/not-applicable/backup-chunk-write.json +43 -0
- package/examples/profiles/backup-and-recovery/not-applicable/restore-progress.json +42 -0
- package/examples/profiles/backup-and-recovery/not-applicable/storage-replica-heartbeat.json +37 -0
- package/examples/profiles/backup-and-recovery/valid/backup-complete-failed.json +62 -0
- package/examples/profiles/backup-and-recovery/valid/backup-complete.json +56 -0
- package/examples/profiles/backup-and-recovery/valid/backup-create.json +56 -0
- package/examples/profiles/backup-and-recovery/valid/backup-delete.json +83 -0
- package/examples/profiles/backup-and-recovery/valid/backup-expire.json +56 -0
- package/examples/profiles/backup-and-recovery/valid/backup-verify.json +67 -0
- package/examples/profiles/backup-and-recovery/valid/policy-update.json +78 -0
- package/examples/profiles/backup-and-recovery/valid/recovery-complete.json +61 -0
- package/examples/profiles/backup-and-recovery/valid/recovery-failback.json +72 -0
- package/examples/profiles/backup-and-recovery/valid/recovery-failover.json +72 -0
- package/examples/profiles/backup-and-recovery/valid/recovery-start.json +61 -0
- package/examples/profiles/backup-and-recovery/valid/restore-complete.json +63 -0
- package/examples/profiles/backup-and-recovery/valid/restore-start.json +74 -0
- package/examples/profiles/backup-and-recovery/valid/snapshot-create.json +58 -0
- package/examples/profiles/backup-and-recovery/valid/snapshot-delete.json +60 -0
- package/examples/profiles/customer-and-account-management/README.md +127 -0
- package/examples/profiles/customer-and-account-management/invalid/account-close-missing-approval.json +70 -0
- package/examples/profiles/customer-and-account-management/invalid/account-freeze-missing-restriction-scope.json +83 -0
- package/examples/profiles/customer-and-account-management/invalid/account-freeze-missing-status.json +83 -0
- package/examples/profiles/customer-and-account-management/invalid/account-limit-missing-before.json +74 -0
- package/examples/profiles/customer-and-account-management/invalid/account-open-missing-owner.json +58 -0
- package/examples/profiles/customer-and-account-management/invalid/account-status-missing-subject.json +73 -0
- package/examples/profiles/customer-and-account-management/invalid/account-update-missing-override-reason.json +67 -0
- package/examples/profiles/customer-and-account-management/invalid/customer-close-missing-authorization.json +69 -0
- package/examples/profiles/customer-and-account-management/invalid/customer-create-missing-customer-type.json +62 -0
- package/examples/profiles/customer-and-account-management/invalid/customer-delete-missing-scope.json +70 -0
- package/examples/profiles/customer-and-account-management/invalid/customer-merge-missing-source.json +78 -0
- package/examples/profiles/customer-and-account-management/invalid/customer-update-missing-change.json +61 -0
- package/examples/profiles/customer-and-account-management/not-applicable/account-balance-view.json +39 -0
- package/examples/profiles/customer-and-account-management/not-applicable/customer-profile-view.json +38 -0
- package/examples/profiles/customer-and-account-management/not-applicable/customer-search.json +38 -0
- package/examples/profiles/customer-and-account-management/valid/account-close-approved.json +78 -0
- package/examples/profiles/customer-and-account-management/valid/account-freeze.json +84 -0
- package/examples/profiles/customer-and-account-management/valid/account-limit-increase.json +77 -0
- package/examples/profiles/customer-and-account-management/valid/account-open.json +59 -0
- package/examples/profiles/customer-and-account-management/valid/account-status-on-behalf.json +79 -0
- package/examples/profiles/customer-and-account-management/valid/account-update-override.json +72 -0
- package/examples/profiles/customer-and-account-management/valid/customer-close.json +75 -0
- package/examples/profiles/customer-and-account-management/valid/customer-create.json +63 -0
- package/examples/profiles/customer-and-account-management/valid/customer-delete.json +71 -0
- package/examples/profiles/customer-and-account-management/valid/customer-merge.json +79 -0
- package/examples/profiles/customer-and-account-management/valid/customer-restrict.json +76 -0
- package/examples/profiles/customer-and-account-management/valid/customer-update.json +65 -0
- package/examples/profiles/deployment-and-change-management/README.md +115 -0
- package/examples/profiles/deployment-and-change-management/invalid/cancel-missing-authorization.json +59 -0
- package/examples/profiles/deployment-and-change-management/invalid/cancel-missing-reason.json +61 -0
- package/examples/profiles/deployment-and-change-management/invalid/change-request-approve-missing-approval.json +57 -0
- package/examples/profiles/deployment-and-change-management/invalid/configuration-update-missing-authorization.json +81 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-approved-missing-approval.json +73 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-failed-missing-resulting-state.json +71 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-approval-required.json +67 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-deployment-id.json +67 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-environment.json +67 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-previous-version.json +67 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-missing-version.json +67 -0
- package/examples/profiles/deployment-and-change-management/invalid/deploy-partial-missing-resulting-state.json +68 -0
- package/examples/profiles/deployment-and-change-management/invalid/secret-rotate-missing-changed-fields.json +72 -0
- package/examples/profiles/deployment-and-change-management/invalid/secret-rotate-missing-reason.json +68 -0
- package/examples/profiles/deployment-and-change-management/not-applicable/build-log-append.json +33 -0
- package/examples/profiles/deployment-and-change-management/not-applicable/pipeline-poll.json +33 -0
- package/examples/profiles/deployment-and-change-management/not-applicable/secret-access.json +39 -0
- package/examples/profiles/deployment-and-change-management/valid/change-request-approve.json +69 -0
- package/examples/profiles/deployment-and-change-management/valid/configuration-update.json +88 -0
- package/examples/profiles/deployment-and-change-management/valid/deploy-approved.json +85 -0
- package/examples/profiles/deployment-and-change-management/valid/deploy-automated.json +68 -0
- package/examples/profiles/deployment-and-change-management/valid/deploy-failed.json +72 -0
- package/examples/profiles/deployment-and-change-management/valid/deploy-partial.json +69 -0
- package/examples/profiles/deployment-and-change-management/valid/infrastructure-apply.json +78 -0
- package/examples/profiles/deployment-and-change-management/valid/release-approve.json +77 -0
- package/examples/profiles/deployment-and-change-management/valid/release-cancel.json +65 -0
- package/examples/profiles/deployment-and-change-management/valid/release-create.json +53 -0
- package/examples/profiles/deployment-and-change-management/valid/rollback-emergency.json +80 -0
- package/examples/profiles/deployment-and-change-management/valid/secret-rotate-emergency.json +73 -0
- package/examples/profiles/document-management/README.md +80 -0
- package/examples/profiles/document-management/invalid/delete-missing-reason.json +53 -0
- package/examples/profiles/document-management/invalid/download-missing-classification.json +46 -0
- package/examples/profiles/document-management/invalid/external-share-missing-expiry.json +68 -0
- package/examples/profiles/document-management/invalid/external-share-missing-reason.json +64 -0
- package/examples/profiles/document-management/invalid/legal-hold-missing-state.json +63 -0
- package/examples/profiles/document-management/invalid/permission-grant-missing-grantee.json +57 -0
- package/examples/profiles/document-management/invalid/retention-update-missing-class.json +71 -0
- package/examples/profiles/document-management/invalid/share-create-missing-permission.json +53 -0
- package/examples/profiles/document-management/invalid/share-missing-recipient-type.json +53 -0
- package/examples/profiles/document-management/invalid/upload-missing-authorization.json +42 -0
- package/examples/profiles/document-management/invalid/version-rollback-missing-previous.json +58 -0
- package/examples/profiles/document-management/not-applicable/file-view.json +42 -0
- package/examples/profiles/document-management/valid/file-delete.json +58 -0
- package/examples/profiles/document-management/valid/file-download.json +47 -0
- package/examples/profiles/document-management/valid/file-upload.json +47 -0
- package/examples/profiles/document-management/valid/legal-hold-apply.json +64 -0
- package/examples/profiles/document-management/valid/permission-grant.json +58 -0
- package/examples/profiles/document-management/valid/retention-update.json +72 -0
- package/examples/profiles/document-management/valid/share-external.json +69 -0
- package/examples/profiles/document-management/valid/share-internal.json +54 -0
- package/examples/profiles/document-management/valid/share-revoke.json +56 -0
- package/examples/profiles/document-management/valid/version-rollback.json +59 -0
- package/examples/profiles/financial-transaction-management/README.md +123 -0
- package/examples/profiles/financial-transaction-management/invalid/limit-update-missing-limit-type.json +101 -0
- package/examples/profiles/financial-transaction-management/invalid/manual-deposit-missing-change.json +85 -0
- package/examples/profiles/financial-transaction-management/invalid/payment-capture-missing-amount.json +69 -0
- package/examples/profiles/financial-transaction-management/invalid/payment-capture-missing-authorization.json +65 -0
- package/examples/profiles/financial-transaction-management/invalid/payout-missing-direction.json +63 -0
- package/examples/profiles/financial-transaction-management/invalid/reconciliation-adjust-missing-change.json +79 -0
- package/examples/profiles/financial-transaction-management/invalid/reconciliation-missing-identifier.json +88 -0
- package/examples/profiles/financial-transaction-management/invalid/refund-missing-reason.json +70 -0
- package/examples/profiles/financial-transaction-management/invalid/reversal-missing-original-transaction.json +84 -0
- package/examples/profiles/financial-transaction-management/invalid/transfer-missing-related-resources.json +66 -0
- package/examples/profiles/financial-transaction-management/invalid/withdrawal-missing-approval-status.json +96 -0
- package/examples/profiles/financial-transaction-management/invalid/withdrawal-missing-correlation.json +96 -0
- package/examples/profiles/financial-transaction-management/not-applicable/balance-view.json +36 -0
- package/examples/profiles/financial-transaction-management/not-applicable/quote-create.json +33 -0
- package/examples/profiles/financial-transaction-management/not-applicable/report-generate.json +36 -0
- package/examples/profiles/financial-transaction-management/valid/chargeback-open.json +73 -0
- package/examples/profiles/financial-transaction-management/valid/deposit-manual-correction.json +86 -0
- package/examples/profiles/financial-transaction-management/valid/limit-update.json +92 -0
- package/examples/profiles/financial-transaction-management/valid/payment-capture.json +70 -0
- package/examples/profiles/financial-transaction-management/valid/payment-reject.json +76 -0
- package/examples/profiles/financial-transaction-management/valid/payout-execute.json +64 -0
- package/examples/profiles/financial-transaction-management/valid/reconciliation-adjust.json +85 -0
- package/examples/profiles/financial-transaction-management/valid/refund-create.json +75 -0
- package/examples/profiles/financial-transaction-management/valid/reversal-execute.json +80 -0
- package/examples/profiles/financial-transaction-management/valid/settlement-execute.json +70 -0
- package/examples/profiles/financial-transaction-management/valid/transfer-execute.json +74 -0
- package/examples/profiles/financial-transaction-management/valid/withdrawal-execute.json +91 -0
- package/examples/profiles/identity-and-access-management/README.md +93 -0
- package/examples/profiles/identity-and-access-management/invalid/credential-rotate-missing-reason.json +47 -0
- package/examples/profiles/identity-and-access-management/invalid/permission-grant-missing-scope.json +54 -0
- package/examples/profiles/identity-and-access-management/invalid/privileged-role-without-approval.json +68 -0
- package/examples/profiles/identity-and-access-management/invalid/privileged-role-without-mfa.json +83 -0
- package/examples/profiles/identity-and-access-management/invalid/role-assign-missing-authorization.json +54 -0
- package/examples/profiles/identity-and-access-management/invalid/role-assign-missing-role-id.json +60 -0
- package/examples/profiles/identity-and-access-management/invalid/service-account-missing-owner.json +53 -0
- package/examples/profiles/identity-and-access-management/not-applicable/document-share.json +49 -0
- package/examples/profiles/identity-and-access-management/valid/credential-rotate.json +59 -0
- package/examples/profiles/identity-and-access-management/valid/permission-revoke.json +77 -0
- package/examples/profiles/identity-and-access-management/valid/role-assign-privileged.json +87 -0
- package/examples/profiles/identity-and-access-management/valid/role-assign-standard.json +80 -0
- package/examples/profiles/identity-and-access-management/valid/service-account-create.json +55 -0
- package/examples/profiles/identity-and-access-management/valid/user-create.json +55 -0
- package/examples/profiles/identity-and-access-management/valid/user-disable.json +79 -0
- package/examples/profiles/incident-management/README.md +125 -0
- package/examples/profiles/incident-management/invalid/assignment-change-missing-assignee.json +69 -0
- package/examples/profiles/incident-management/invalid/assignment-change-missing-change.json +59 -0
- package/examples/profiles/incident-management/invalid/case-close-missing-approval.json +94 -0
- package/examples/profiles/incident-management/invalid/case-close-missing-authorization.json +108 -0
- package/examples/profiles/incident-management/invalid/case-close-missing-reason.json +109 -0
- package/examples/profiles/incident-management/invalid/case-create-missing-status.json +67 -0
- package/examples/profiles/incident-management/invalid/case-reopen-missing-change.json +66 -0
- package/examples/profiles/incident-management/invalid/case-reopen-missing-reason.json +72 -0
- package/examples/profiles/incident-management/invalid/case-resolve-missing-resolution-type.json +74 -0
- package/examples/profiles/incident-management/invalid/corrective-action-verify-missing-method.json +81 -0
- package/examples/profiles/incident-management/invalid/priority-change-missing-priority.json +73 -0
- package/examples/profiles/incident-management/invalid/rca-approve-missing-approval.json +66 -0
- package/examples/profiles/incident-management/invalid/rca-create-missing-method.json +72 -0
- package/examples/profiles/incident-management/invalid/sla-breach-missing-target.json +49 -0
- package/examples/profiles/incident-management/not-applicable/case-view.json +40 -0
- package/examples/profiles/incident-management/not-applicable/monitoring-alert-raise.json +40 -0
- package/examples/profiles/incident-management/not-applicable/note-create.json +46 -0
- package/examples/profiles/incident-management/valid/assignment-change.json +70 -0
- package/examples/profiles/incident-management/valid/case-close.json +114 -0
- package/examples/profiles/incident-management/valid/case-create.json +68 -0
- package/examples/profiles/incident-management/valid/case-reopen.json +77 -0
- package/examples/profiles/incident-management/valid/case-resolve.json +75 -0
- package/examples/profiles/incident-management/valid/corrective-action-open.json +72 -0
- package/examples/profiles/incident-management/valid/corrective-action-verify.json +82 -0
- package/examples/profiles/incident-management/valid/create-short-form.json +64 -0
- package/examples/profiles/incident-management/valid/major-declare.json +79 -0
- package/examples/profiles/incident-management/valid/priority-change.json +74 -0
- package/examples/profiles/incident-management/valid/problem-case-close.json +73 -0
- package/examples/profiles/incident-management/valid/rca-approve.json +86 -0
- package/examples/profiles/incident-management/valid/rca-create.json +73 -0
- package/examples/profiles/incident-management/valid/sla-breach.json +50 -0
- package/examples/profiles/message-broker-management/README.md +123 -0
- package/examples/profiles/message-broker-management/invalid/acl-grant-missing-principal.json +78 -0
- package/examples/profiles/message-broker-management/invalid/configuration-update-missing-change.json +58 -0
- package/examples/profiles/message-broker-management/invalid/message-replay-missing-scope.json +76 -0
- package/examples/profiles/message-broker-management/invalid/offset-reset-missing-target.json +96 -0
- package/examples/profiles/message-broker-management/invalid/queue-purge-missing-destructive-flag.json +79 -0
- package/examples/profiles/message-broker-management/invalid/queue-purge-missing-reason.json +77 -0
- package/examples/profiles/message-broker-management/invalid/quota-update-missing-dimension.json +72 -0
- package/examples/profiles/message-broker-management/invalid/topic-create-missing-authorization.json +61 -0
- package/examples/profiles/message-broker-management/invalid/topic-create-missing-classification.json +66 -0
- package/examples/profiles/message-broker-management/invalid/topic-create-missing-cluster.json +66 -0
- package/examples/profiles/message-broker-management/invalid/topic-delete-denied-missing-error-type.json +68 -0
- package/examples/profiles/message-broker-management/invalid/topic-delete-missing-approval.json +65 -0
- package/examples/profiles/message-broker-management/not-applicable/consumer-group-rebalance.json +40 -0
- package/examples/profiles/message-broker-management/not-applicable/message-consume.json +41 -0
- package/examples/profiles/message-broker-management/not-applicable/message-publish.json +41 -0
- package/examples/profiles/message-broker-management/valid/acl-grant.json +79 -0
- package/examples/profiles/message-broker-management/valid/cluster-upgrade.json +77 -0
- package/examples/profiles/message-broker-management/valid/configuration-update.json +65 -0
- package/examples/profiles/message-broker-management/valid/consumer-group-delete.json +64 -0
- package/examples/profiles/message-broker-management/valid/message-replay.json +77 -0
- package/examples/profiles/message-broker-management/valid/offset-reset.json +97 -0
- package/examples/profiles/message-broker-management/valid/queue-purge.json +82 -0
- package/examples/profiles/message-broker-management/valid/quota-update.json +73 -0
- package/examples/profiles/message-broker-management/valid/topic-create.json +67 -0
- package/examples/profiles/message-broker-management/valid/topic-delete-denied.json +69 -0
- package/examples/profiles/message-broker-management/valid/topic-delete.json +77 -0
- package/examples/profiles/message-broker-management/valid/topic-retention-reduce.json +77 -0
- package/examples/profiles/secrets-and-key-management/README.md +115 -0
- package/examples/profiles/secrets-and-key-management/invalid/certificate-issue-missing-expiry.json +54 -0
- package/examples/profiles/secrets-and-key-management/invalid/emergency-reveal-missing-approval.json +61 -0
- package/examples/profiles/secrets-and-key-management/invalid/key-destroy-missing-approval.json +56 -0
- package/examples/profiles/secrets-and-key-management/invalid/key-generate-missing-owner.json +56 -0
- package/examples/profiles/secrets-and-key-management/invalid/key-import-missing-reason.json +59 -0
- package/examples/profiles/secrets-and-key-management/invalid/policy-update-missing-change.json +61 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-create-missing-authorization.json +53 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-export-missing-destination.json +74 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-reveal-missing-reason.json +65 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-revoke-missing-reason.json +52 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-rotate-missing-change.json +48 -0
- package/examples/profiles/secrets-and-key-management/invalid/secret-rotate-missing-type.json +54 -0
- package/examples/profiles/secrets-and-key-management/not-applicable/key-decrypt.json +27 -0
- package/examples/profiles/secrets-and-key-management/not-applicable/secret-cache-refresh.json +27 -0
- package/examples/profiles/secrets-and-key-management/not-applicable/secret-retrieve.json +27 -0
- package/examples/profiles/secrets-and-key-management/valid/certificate-issue.json +55 -0
- package/examples/profiles/secrets-and-key-management/valid/key-destroy.json +64 -0
- package/examples/profiles/secrets-and-key-management/valid/key-export.json +73 -0
- package/examples/profiles/secrets-and-key-management/valid/key-generate.json +57 -0
- package/examples/profiles/secrets-and-key-management/valid/key-import.json +64 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-create.json +59 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-export.json +75 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-policy-update.json +68 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-reveal-emergency.json +68 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-reveal.json +70 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-revoke.json +57 -0
- package/examples/profiles/secrets-and-key-management/valid/secret-rotate.json +55 -0
- package/examples/valid/access-request-approval.json +47 -0
- package/examples/valid/document-external-share.json +92 -0
- package/examples/valid/incident-case-close.json +114 -0
- package/examples/valid/kafka-consumer-offset-reset.json +105 -0
- package/examples/valid/minimal-event.json +22 -0
- package/examples/valid/nightly-reconciliation-job.json +33 -0
- package/examples/valid/order-api-publish.json +34 -0
- package/examples/valid/order-consumer-new-trace.json +36 -0
- package/examples/valid/privileged-configuration-change.json +109 -0
- package/examples/valid/service-account-data-export.json +83 -0
- package/examples/valid/user-role-assignment.json +92 -0
- 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
|
+
}
|