URS-DAT-001: Data Integrity and Audit¶
| Property | Value |
|---|---|
| ID | URS-DAT-001 |
| Version | 1.0 |
| Status | Draft |
| Bounded Context | Cross-cutting (Data Integrity) |
| Author | |
| Approved By | |
| Date |
BR Traceability¶
| URS Requirement | Business Requirement | arc42 Reference |
|---|---|---|
| URS-DAT-001.1 | BR-07, BR-08 | arc42/02 OC-03 |
| URS-DAT-001.2 | BR-07 | arc42/06 s6.4 |
| URS-DAT-001.3 | BR-07 | arc42/01 s1.1 |
| URS-DAT-001.4 | BR-08 | arc42/08 s8.4 |
Scope¶
Data integrity is a cross-cutting concern ensuring all data in Essert.MF adheres to ALCOA+ principles (Attributable, Legible, Contemporaneous, Original, Accurate). This is critical for GAMP5 Category 4 compliance in pharmaceutical manufacturing.
Requirements¶
URS-DAT-001.1: ALCOA+ Record Structure¶
Description: All entities shall have UID (auto-generated), Timestamp, Creator, and CRC fields to ensure attributability and traceability.
Acceptance Criteria: - UID: bigint(20) AUTO_INCREMENT — never manually assigned - Timestamp: datetime — set at creation/modification time - Creator: varchar(30) — identifies the user or system that created/modified the record - CRC: bigint(20) — integrity checksum calculated from UID + all business fields - No record exists without all four fields populated
GxP Relevance: Direct Risk Class: Critical
URS-DAT-001.2: CRC Integrity Verification¶
Description: CRC32 checksum shall be calculated from UID plus all business fields and be verifiable on read.
Acceptance Criteria: - CRC calculated using two-phase insert: insert with UID=0, read back generated UID, calculate CRC, update - CRC content includes a type-specific prefix (e.g., "EsrtRbtx-") - CRC includes UID, all business fields, timestamp, and creator - CRC can be recalculated and verified on read to detect tampering - See ADR-003
GxP Relevance: Direct Risk Class: Critical
URS-DAT-001.3: Changelog Audit Trail¶
Description: The system shall maintain historical change logs for all parameter modifications in a dedicated changelogs database.
Acceptance Criteria: - All parameter changes (create, update, delete) are logged - Changelog records include: what changed, old value, new value, who, when - 44 changelog tables cover all parameter types - Changelog data is stored in a separate database (db_changelogs) for isolation - Changelog records are immutable (append-only)
GxP Relevance: Direct Risk Class: High
URS-DAT-001.4: Transaction Atomicity¶
Description: Multi-step operations shall be atomic — all changes succeed or all are rolled back.
Acceptance Criteria: - Product creation with parameters: product, version, and all mappings in one transaction - Cascading deletes: all related records removed in one transaction - Cross-database operations coordinated via Unit of Work pattern - Partial state is never persisted on failure - See arc42/08 s8.4 — Unit of Work Pattern
GxP Relevance: Direct Risk Class: High
References¶
- Constraint: arc42/02 OC-03 — GAMP5 Category 4
- CRC Flow: arc42/06 s6.4 — CRC Calculation Flow
- CRC Pattern: arc42/08 s8.5 — CRC Integrity Concept
- Unit of Work: arc42/08 s8.4 — Unit of Work Pattern
- Decision: arc42/09 ADR-003 — AUTO_INCREMENT UID Pattern