ADR-0075: Source History Import — Continuity Without Forged Audit¶
- Status: accepted (Nicolas 2026-07-15: "I fully agree with all your points, especially the red line")
- Date: 2026-07-15
- Deciders: Nicolas Burri, design by Claude.
- Amends: ADR-0068 M-4/M-7 (which imported only the current version with import-time attribution; this adds continuity + a history record while keeping M-7's honesty rule).
The red line (constitutive)¶
LQMS's audit trail never claims acts nobody performed in LQMS. No backdated lifecycle events, no acts attributed to users who did not perform them here. What the import records is a CLAIM WITH PROVENANCE: "the import recorded, at import time, that the source system states X."
Decision¶
- Version-number continuity: an imported document's version number continues the source sequence (Jira "Freigegebene Version" — v11 stays v11, not v1).
- Backdated effectivity:
effective_fromcarries the source release date (Jira/Comala fields; changelog transition as fallback) — periodic-review and training-overdue clocks then run from true dates. Set control-plane-style by the importer (a data correction, not a lifecycle act; the LQMS audit still shows the import-time acts by the import personas). - Source history as a claims record: Confluence page versions (who/when per version) and
the Jira ticket changelog (status transitions with actors + timestamps) are fetched
(read-only) and stored as a structured
source_historyrecord attached to the document — displayed in the version-history area as a clearly marked "History from the source system" section (names as TEXT, linked to LQMS accounts only where they exist). It is provenance data, disposable with the document, never part of the LQMS audit trail. - NOT imported: historical content bodies. Recreating v1..vN-1 as real LQMS versions would require lifecycle acts nobody performed (the red line); the old bodies remain readable in the source system, which the history entries link to.
Amendment (2026-08-10, with ADR-0113): this point's ONLY ground was the red line — and ADR-0113's arrival-writes create versions WITHOUT claiming lifecycle acts (the version row carries the source truth as data; the trail records the import act by its real actor, now). The ban therefore dissolves for versions the source PROVES released (the Comala evidence ladder, ADR-0113 §3); everything unproven stays exactly here, in the §3 claims record. The red line itself is untouched — it is the reason the amendment is safe, not a casualty of it.
Consequences¶
- Fetch gains page-version + changelog calls (read-only); transform emits a history bundle; load sets version-number/effective-from continuity and posts the history record.
- Schema: a
source_historystorage (jsonb on the document or a small table — implementer's choice, RLS scope-carrying, disposal-severed). - UI: version history shows the legacy section, visually distinct from LQMS's own versions.
- Re-import stays idempotent (history record replaced by provenance key, not duplicated).