From bde123735814a64578b3687010876c81236677d5 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 13 Jun 2026 00:47:53 +0200 Subject: [PATCH] docs(adr): record title-length guard obligation for #775 title is VARCHAR(255) with no planned service-level check; ADR-040's consequences listed the optimistic-lock and forgery obligations for #775 but not this one, so an over-long title would have surfaced as a raw DataIntegrityViolationException -> HTTP 500. Mirrors GESCHICHTE_TITLE_TOO_LONG. Co-Authored-By: Claude Opus 4.8 --- docs/adr/040-timeline-domain-data-model.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/adr/040-timeline-domain-data-model.md b/docs/adr/040-timeline-domain-data-model.md index 5ae61f17..30f5767a 100644 --- a/docs/adr/040-timeline-domain-data-model.md +++ b/docs/adr/040-timeline-domain-data-model.md @@ -109,4 +109,7 @@ the event intact (V71/ADR-032 hardening — a person delete must never 500). - The `timeline → document.DatePrecision` compile coupling is permanent until a shared-package refactor; precedent already exists (`importing/DocumentImporter`, `person`). - The service/controller/DTO layer (#775) inherits the view-assembly, optimistic-lock - translation, forgery-guard, and permission obligations recorded above. + translation, forgery-guard, and permission obligations recorded above. It must also add a + service-level title-length check (new `ErrorCode`, e.g. `TIMELINE_TITLE_TOO_LONG`, mirroring + `GESCHICHTE_TITLE_TOO_LONG`) — `title` is `VARCHAR(255)`, and without the guard an over-long + title surfaces as a raw `DataIntegrityViolationException` → HTTP 500.