Immutable audit history
Capture immutable workflow audit snapshots with linked SHA-256 hashes. Each entry records the actor, action, sequence, event/mutation identifiers, and the preceding hash so a supplied history can be checked for integrity.
What you configure
- getAuditHistory
- Read the workflow's immutable audit snapshot.
- verifyAuditHistory
- Verify ordering and hash consistency in the supplied history.
- persistAudit
- Append entries to a customer-controlled durable ledger when required.
Essential integration
This assumes the shared Quick start already provides premiumLicense and, for UI views, premiumCalendarOptions. Only the feature-specific setup is shown.
import { EnterpriseCalendarWorkflow } from '@wts-calendar/core/enterprise-workflow';
const workflow = new EnterpriseCalendarWorkflow({
license: premiumLicense,
actor: { id: 'editor-1', roles: ['editor'] },
online: false,
autoFlush: false,
events: [
{
id: 'release',
title: 'Release window',
start: '2026-09-07T09:00:00Z',
end: '2026-09-07T10:00:00Z',
},
],
defaultPermission: 'deny',
permissionPolicies: [
{
id: 'editor-update',
effect: 'allow',
actions: ['update', 'flush'],
roles: ['editor'],
},
],
});
await workflow.submit({
type: 'update',
eventId: 'release',
changes: { title: 'Reviewed release' },
});
workflow.setOnline(true);
await workflow.flush();
export const history = workflow.getAuditHistory();
export const intact = await workflow.verifyAuditHistory(history);
console.log(intact, history);Behavior and lifecycle
- Audit appends are serialized and entries include both their own hash and the previous hash.
- Verification can detect reordered, removed, or modified entries in the supplied chain.
Limits and responsibilities
- Hash chaining does not make browser memory durable and cannot protect a history if an attacker can replace the whole chain.
- This feature alone is not a compliance certification or a tamper-proof storage service.
Enable this capability
- Optional module
- @wts-calendar/core/enterprise-workflow
- Local capability ID
- enterprise-workflow · enabled by package-wide Premium
Use the request form to describe your project and deployment origins. Pricing and terms are confirmed privately. A WTS license is separate from provider credentials; do not send passwords or production access tokens.
The live example uses a browser-visible deployment key restricted to this package and approved origins. It does not collect license keys or visitor credentials.