SwitchTender

Sample evidence pack

This is what the change-management evidence a reviewer samples looks like, produced by switchtender audit report over a real chain, which is a Team feature. The chain, the per-run dossier, the signed receipts, and offline verification behind it are free. It is the artifact you hand an auditor or a prospect's security team. See Compliance mapping for which control clauses each column answers.

The instance below uses fictional accounts and playbook names and touches no real infrastructure, so nothing here is redacted; on your own instance the same report carries your real changes. The chain it was rendered from verifies and is anchored to a public timestamp authority, so the header reads:

The chain verifies and carries 1 anchor fixing it outside this install.

The period at a glance

Changes Approved Rejected Failed
6 4 1 2

Every change in the period

When (UTC) Change Actor Source Risk Held by Decision Outcome
2026-08-10 11:50 ansible deploy/site.yml alice-deploy api medium gate-all-production-change Approved by platform-admin #10 failed
2026-08-10 11:50 ansible tls/rotate-certs.yml alice-deploy api medium gate-all-production-change Approved by platform-admin #11 failed
2026-08-10 11:50 ansible web/restart-nginx.yml alice-deploy api medium gate-all-production-change Rejected by platform-admin #12 rejected
2026-08-10 11:50 ansible db/apply-migrations.yml alice-deploy api medium gate-all-production-change — pending_approval
2026-08-10 11:51 bash echo deploy complete alice-deploy api low gate-all-production-change Approved by platform-admin #15 succeeded
2026-08-10 11:51 bash echo cache purged on edge fleet alice-deploy api low gate-all-production-change Approved by platform-admin #16 succeeded

How to read it

  • Held by names the approval policy that stopped every change, so a reviewer sees the gate was in force, not that these six happened to be caught.
  • Decision is the chain-recorded approval or rejection, with the approver and the entry number the decision landed at (#10), so it is redeemable against the chain rather than a field the server asserts. alice-deploy, an operator, submitted every change; platform-admin decided each one, which is the separation of requester and approver a change-management control expects.
  • Outcome is honest, not curated. Two approved changes then failed at execution, one change was rejected and never ran, one is still awaiting a decision, and two succeeded. An audit trail that only ever showed green would be the one to distrust.
  • Nothing in the row exposes a secret. The chain also commits to a redacted digest of each change's payload, so the record proves what changed without carrying the credentials the change used.

Produce your own

# a period's change register
switchtender audit report --from 2026-07-01 --to 2026-08-01 --out evidence.html

# one change in depth: spec, approvals, per-host outcomes, receipts, anchors
switchtender audit run <run-id> --out run-dossier.html

# fix the chain in time so a lost tail is detectable, then re-report
switchtender audit anchor

Enterprise evidence operations assemble these on a cadence, mapped to your controls and written to an archive, so the sample a review asks for exists before anyone asks. Producing a dossier for one run, and verifying any of it offline, stay free in the core. Scheduling registers on a cadence with --evidence-dir is Team, as is the period report switchtender audit report renders.