Premium

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.

Immutable audit history — Screenshot of actual package API results with sample data. The read-only result table is application-owned; this feature does not provide this screen as built-in UI. Preview build: @wts-calendar/core@1.1.0 (unpublished).
Screenshot of actual package API results with sample data. The read-only result table is application-owned; this feature does not provide this screen as built-in UI. Preview build: @wts-calendar/core@1.1.0 (unpublished).

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.

Integration code example

  1. Provide meaningful actor IDs and roles when submitting or approving workflow operations.
  2. Retain audit entries through the optional backend adapter.
  3. Verify retrieved history and anchor or sign checkpoints outside the browser when your assurance requirements call for it.

Copy this TypeScript into your application, not the browser console. Replace YOUR_WTS_LICENSE_KEY with an entitlement issued for your deployment origin. A WTS license is not a Google, Microsoft or CalDAV credential. These examples are documentation only and never execute on this page.

Install command
npm install @wts-calendar/core
TypeScript integration
import { verifyCalendarLicense } from '@wts-calendar/core';
import { EnterpriseCalendarWorkflow } from '@wts-calendar/core/enterprise-workflow';

const license = await verifyCalendarLicense('YOUR_WTS_LICENSE_KEY');
const workflow = new EnterpriseCalendarWorkflow({
  license,
  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);

Application responsibilities

This sample is runtime-only and initially offline. No database or WTS backend is required. Without your own backend adapter, flush commits only in memory and reload loses the state.

Actor IDs and roles are sample data, not authentication. A shared backend must authenticate users and independently enforce permissions, approval stages and event versions.

Frozen, hash-chained snapshots detect edits within a retained chain. They are not durable or tamper-proof if an attacker replaces the whole chain; regulated systems need an external append-only ledger and trusted checkpoints.

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.
Premium

Enable this capability

Optional module
@wts-calendar/core/enterprise-workflow
Signed entitlement
enterprise-workflow

Request the required features and deployment origins by email. Pricing and terms are confirmed privately. A WTS license is separate from provider credentials; do not send passwords or production access tokens.

Email for a license key →

This public guide does not execute Premium modules or collect license tokens.