Amendment Log
Goal: Document corrections to existing records with reason-for-change traceability, preserving the original record and maintaining a complete amendment chain.
What is an Amendment Log?
| Aspect | Description |
|---|---|
| Purpose | Document corrections with reason-for-change and full traceability |
| Workflow | Select entity → choose reason category → enter justification → review diff → submit |
| Original | Original records are never modified |
| Chain | Linked-list history from original through each correction |
| Compliance | Satisfies ALCOA+ Attributable, Legible, Original, Accurate requirements |
Original records are never modified. Amendments create new records linked to the original. The full chain is always traceable — from the first version through every correction.
Prerequisites
- Workspace admin or editor permissions
- Amendment Log node on the workspace canvas
- (Recommended) Audit Event Log active for complete ALCOA+ coverage
Option A: Using the UI
Step 1: Add Amendment Log to Workspace
- Open workspace canvas
- Find Amendment Log in the Node Bank (scroll icon, under Governance)
- Drag onto canvas
- Name it (e.g., "production-amendments")
- Commit to activate
Step 2: Initiate an Amendment
When you need to correct a value:
- Select the entity to amend (e.g., a Connection, Surface configuration, etc.)
- Open Inspector → click Amend button
- The Reason-for-Change modal opens
Step 3: Document the Reason
| Field | Description | Required |
|---|---|---|
| Reason Category | Validated dropdown (see categories below) | Yes |
| Justification | Free-text explanation | Yes |
| Amended Fields | Auto-populated from the change diff | Auto |
Reason Categories:
| Category | When to Use |
|---|---|
data-entry-error | Typo, wrong value entered |
transcription-error | Misread from paper record or instrument |
equipment-malfunction | Sensor failure, device error |
protocol-deviation | Procedure or workflow change |
recalculation | Formula update, unit conversion |
delayed-entry | Late data entry from manual records |
other | Provide detailed justification |
Step 4: Review the Diff
Before submitting, review the field-level diff:
| Field | Original Value | Amended Value |
|---|---|---|
temperature.threshold | 72.5 | 75.0 |
humidity.alert | true | false |
The diff shows exactly which fields changed and their before/after values. Review carefully — once submitted, the amendment is part of the permanent chain.
Step 5: Submit
Click Submit Amendment. The amendment is recorded with:
- Your user identity
- Server timestamp
- Reason category + justification
- Full field-level diff
- Link to the previous version in the chain
Step 6: Browse Amendment Chain
Click the Amendment Log node → Inspector → search for an entity:
- View the linked-list history showing original → amendment 1 → amendment 2 → ...
- Each entry shows who, when, why, and what changed
- Click any entry to see the full diff at that point in time
Two-Person Authentication (EU Annex 11)
When enabled on the Amendment Log node, corrections require a second signer:
How It Works
- User A submits an amendment with reason-for-change → Status:
Pending - User B reviews the amendment in the approval queue
- User B approves or rejects:
- Approve → amendment becomes
Approved, correction takes effect - Reject → amendment becomes
Rejected, requires rejection reason
- Approve → amendment becomes
Maker/checker separation: the approver cannot be the same person who submitted the amendment. This is enforced at the API level — not just a UI constraint.
Approval Queue
The approval queue shows all pending amendments awaiting review:
| Column | Description |
|---|---|
| Entity | What was amended |
| Submitted By | Who submitted the correction |
| Submitted At | When the correction was submitted |
| Reason | Category + justification |
| Diff | Field-level changes |
| Actions | Approve / Reject buttons |
Status Lifecycle
[Submitted] ──→ Pending ──→ Approved (correction effective)
└──→ Rejected (with reason, preserved in chain)
Both approved and rejected amendments are preserved in the append-only chain. Rejected amendments document that a correction was proposed and why it was denied — this is itself compliance evidence.
When two-person auth is NOT enabled, amendments are auto-approved at submission. Enable it in the IntegrationsModal → Governance tab for environments that require maker/checker separation.
How It Fits: Two Governance Gates
Open Industrial provides two distinct compliance gates for two categories of change:
| What Changes | First Gate | Second Gate |
|---|---|---|
| Recorded data (values, results, measurements) | Amendment creation with reason-for-change | Approve/reject (this page) |
| Workspace configuration (nodes, connections, settings) | Proposal → Commit | Deploy with RequireDeployApproval |
Both are fully audited. Track 4's Audit Event Log auto-captures every workspace state change — including proposal creation, commits, deploys, amendment creation, and amendment approval/rejection. You do not need to manually log any of these events.
Proposals do not need separate lineage. Every mutation to a proposal is a workspace state change, and the audit trail records who changed what and when. The audit log is the compliance record — proposals are work-in-progress.
Amendment Log governs corrections to recorded data. Audit Event Log governs everything. Deploy approval governs configuration promotion. Together: every change to every layer is documented, attributed, and traceable.
Option B: Ask Azi
Example prompts:
- "Amend the temperature threshold on sensor-config-01 because of the Q2 calibration update"
- "Show me the amendment chain for production-sensors"
- "Who changed the alert configuration and why?"
- "What corrections were made to brew-data this month?"
Original Record Preservation
[Original v1] ──→ [Amendment v2] ──→ [Amendment v3]
(never modified) (links to v1) (links to v2)
| Principle | How It Works |
|---|---|
| Original preserved | v1 is never modified — amendments create new linked records rather than overwriting a field |
| Chain linked | Each amendment links to its predecessor |
| Tamper-evident | SHA-256 per-entity hash chain — any insertion, deletion, or reorder is cryptographically detectable |
| Full history | Any version can be retrieved by chain position |
| Diff available | Each amendment stores the exact field-level changes |
This is the digital equivalent of "don't use white-out." Cross it out, write the correction next to it, initial it, date it, explain why. Same principle, digital execution.
Best Practices
- Always select the most specific reason category (avoid "Other" when possible)
- Write clear justifications that a compliance auditor would understand
- Use Amendment Log alongside Audit Event Log for complete coverage
- Review the diff carefully before submitting — amendments are permanent
- Export amendment chains regularly for compliance archival
Next Steps
| If you want to... | Go to... |
|---|---|
| Set up an audit trail | Audit Event Log → |
| Query amendments via API | REST API → Amendment Logs → |
| Understand ALCOA+ principles | Governance Overview → |
| See the complete compliance picture | Pharma Factory Journey → |
Corrections are a sign of good governance, not failure. What matters is that every correction is documented, justified, traceable, and the original is preserved. That's ALCOA+ in practice.
On this page
- FrontmatterVersion: 1 DocumentType: Guide Title: "Amendment Log" Summary: "Correct a record without altering the original: pick a reason, justify it, review the diff, and submit it into a traceable amendment chain." Created: 2026-04-27
- Amendment Log