ADR-0054: Process Owner Is a Role (amends ADR-0053 P-3)¶
- Status: accepted
- Date: 2026-07-08
- Deciders: Nicolas Burri ("let's switch to owner as role"), after asking for a critical review and the regulatory check
- Amends: ADR-0053 (P-3a chose a per-document owner USER; this replaces it with an owner ROLE before any adoption)
Context¶
ADR-0053 modeled the process owner as a named user. Critical re-examination (requested by Nicolas) found this the one person-pinned designation in an otherwise role-based system, prone to silent decay (departures/deactivations orphan documents) and cut off from the role-addressed task machinery. Regulatory check against the actual texts (norms library): ISO 13485 §5.5.1 requires responsibilities "defined, documented and communicated" and the "interrelation of all personnel" documented — satisfied by roles with assignments; §5.5.2's management representative is the standard's only person-appointment (a person appointed INTO a function); §4.2.4 controls approval ACTS (audit-attributed to individuals regardless); the term "process owner" does not occur in the standard. MDR Art. 15 mandates a person only for the PRRC. No constraint either way; role-ownership is compliant and more robust.
Decision¶
document.owner_user_idis replaced bydocument.owner_role_id(FK to the role catalog; nullable). The owner role should be activated in the document's scope (validated on set). Field landed days earlier with no adopted data — a clean swap, no data migration.- Owner endpoints take/return the ROLE:
GET/PUT /api/documents/{id}/owner {roleId|null}; VersionDetail carriesownerRoleId+ownerRoleName+ownerStaffed. - Unstaffed-owner flag (the one risk role-ownership introduces): the owner read resolves whether the role currently has ≥1 ACTIVE holder effective in the document's scope (the V005 cascade); the detail page shows a warn hint when the owner role is unstaffed — responsibility defined but currently unassigned is a visible gap, never silent.
- UI: the owner picker becomes a role select sourced from /activated-roles (same source as addressees); detail displays the role name (+ unstaffed warn when applicable).
- Future tie-in unchanged from ADR-0053: periodic-review/revision prompts may address the owner role via the existing role-addressed fan-out (deferred refinement).
Consequences¶
- Migration V038 (column swap); owner audit event now carries the role. EDIT_DRAFT gating and the authoring-act semantics are unchanged.
- Personnel changes never orphan a document; accountability resolves to persons on demand via role assignments, and every act remains individually audit-attributed.
- Deferred: owner-role-addressed periodic review; any "exactly-one-holder" convention is organizational, not enforced.