Files
MABEA/arbeitskacheln/14_documents.md
T
patrickandClaude Sonnet 5 dcba53c453
CI / backend-tests (push) Failing after 1m53s
CI / frontend-build (push) Successful in 18s
docs: Documents-Epic komplettiert (DOC-001..005)
DOC-001 (Upload-Grundgerüst) vollständig und solide in MABEA umgesetzt.
DOC-002..005 (Dokumenttypen, Versionierung, Original/Kopie-Kennzeichnung,
dokumentbezogene Zugriffsrechte) fehlen komplett, bewusst P2 - blockieren
nicht den praktischen Alltagsnutzen des bestehenden Moduls.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
2026-09-05 15:50:54 +02:00

128 lines
6.1 KiB
Markdown

# Epic 14 — Documents
Details zu DOC-001 … DOC-005 (vollständig).
---
## DOC-001 — Dokument-Grundgerüst (Upload)
- **Ziel:** Datei-Upload/-Speicherung, polymorph an beliebige Ressource koppelbar.
- **Beschreibung:** Whitelist erlaubter MIME-Types, server-generierter Dateiname
(Path-Traversal-Schutz), lokale Ablage.
- **Benutzerwert:** Zulassungsdokumente/Fotos/Prüfprotokolle digital griffbereit statt
Papier.
- **Abhängigkeiten:** FILE-001
- **Datenmodell:** `dokument` (id, entitaet_typ, entitaet_id, dateiname, speicherpfad,
mime_type, groesse_bytes, beschreibung, hochgeladen_von, hochgeladen_am)
- **Backend:** POST/GET/DELETE Endpunkte
- **Frontend:** Upload-Panel wiederverwendbar
- **Mobile:** Foto direkt von Kamera hochladbar
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Dokumentenbereich
- **Rechte:** Hochladen Mitarbeiter+, Löschen Materialwart+
- **Audit:** Upload/Löschen nicht zwingend im generischen Audit-Log (Datei-Metadaten sind
über hochgeladen_von/-am bereits selbsterklärend)
- **Akzeptanzkriterien:** Upload/Download/Löschen funktioniert, unerlaubte Dateitypen
werden abgelehnt.
- **Tests:** Upload-Test, Ablehnungstest, Download-Inhaltstest.
- **DoD:** deckt sich 1:1 mit MABEA (Dokumente-Modul bereits umgesetzt inkl. Whitelist
PDF/JPEG/PNG/WebP, generisches DokumentePanel).
## DOC-002 — Dokumenttypen
- **Ziel:** Dokumente kategorisieren (Anleitung/Prüfbescheinigung/Rechnung/
Zulassungsdokument/...).
- **Beschreibung:** Typ-Feld am Dokument, aus fester Liste oder Stammdaten.
- **Benutzerwert:** Filterbarkeit („zeig mir nur Zulassungsdokumente").
- **Abhängigkeiten:** DOC-001
- **Datenmodell:** `dokument.dokumenttyp` (enum oder FK auf Stammdaten)
- **Backend:** Filter-Parameter
- **Frontend:** Typ-Auswahl beim Upload, Filter in der Liste
- **Mobile:** Typ-Auswahl
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Dokumentenbereich
- **Rechte:** wie DOC-001
- **Audit:** nein zusätzlich
- **Akzeptanzkriterien:** Filter nach Typ liefert korrekte Teilmenge.
- **Tests:** Filtertest.
- **DoD:** MABEA hat nur `beschreibung` als Freitext, keine strukturierte Typisierung —
echte Lücke, aber klein (P2).
## DOC-003 — Versionierung
- **Ziel:** Neue Version eines Dokuments hochladen, ohne die alte zu verlieren.
- **Beschreibung:** Versionskette (`vorgaenger_dokument_id`), aktuelle Version markiert.
- **Benutzerwert:** „Zulassung 2025" durch „Zulassung 2026" nachvollziehbar ersetzt, alte
Version bleibt für die Historie einsehbar.
- **Abhängigkeiten:** DOC-001
- **Datenmodell:** `dokument.vorgaenger_dokument_id`, `dokument.ist_aktuell`
- **Backend:** Neue-Version-Endpunkt (setzt alte Version auf `ist_aktuell=false`)
- **Frontend:** „Neue Version hochladen"-Aktion, Versionshistorie anzeigen
- **Mobile:** Anzeige
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Dokumentenbereich zeigt standardmäßig nur die aktuelle Version, Verlauf
aufklappbar
- **Rechte:** wie DOC-001
- **Audit:** neue Version wird geloggt
- **Akzeptanzkriterien:** neue Version verdrängt alte aus der Standardansicht, Verlauf
bleibt abrufbar.
- **Tests:** Versionskettentest.
- **DoD:** komplett neu in MABEA — aktuell wird eine neue Datei nur als komplett neues,
unabhängiges Dokument hochgeladen, keine Versionskette.
## DOC-004 — Original-vs-Kopie-Kennzeichnung
- **Ziel:** Kennzeichnen, ob die digitale Kopie das (evtl. rechtlich erforderliche)
Original ersetzt oder nur eine Referenz ist.
- **Beschreibung:** Flag/Enum
`original_vorhanden`/`digitale_kopie_vorhanden`/`dokument_fehlt`/`ersetzt_durch_referenz`
— System behauptet an keiner Stelle automatisch, die digitale Kopie erledige eine
rechtliche Originalpflicht (explizite Ursprungs-Anforderung).
- **Benutzerwert:** Rechtssicherheit — niemand verlässt sich fälschlich auf ein Foto vom
Prüfsiegel als Ersatz fürs Original.
- **Abhängigkeiten:** DOC-001
- **Datenmodell:** `dokument.status_kennzeichnung` (enum)
- **Backend:** Feld setzen
- **Frontend:** Kennzeichnung beim Upload/Anzeige mit Warnhinweis, wenn nur Kopie
vorhanden
- **Mobile:** Anzeige
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Dokumentenbereich
- **Rechte:** wie DOC-001
- **Audit:** Änderung geloggt
- **Akzeptanzkriterien:** Kennzeichnung sichtbar, System macht an keiner Stelle eine
rechtliche Ersatz-Behauptung.
- **Tests:** Anzeige-/Warnhinweistest.
- **DoD:** komplett neu in MABEA — Dokumente werden aktuell ohne jede rechtliche
Einordnung behandelt (neutral „Datei da", weder als Original noch als Kopie markiert).
## DOC-005 — Zugriffsrechte je Dokument
- **Ziel:** Manche Dokumente (z.B. sensible Berichte) nicht für jeden sichtbar machen.
- **Beschreibung:** Optionales Rechte-Feld je Dokument (Rolle/Berechtigung erforderlich
zum Anzeigen), Default = wie Ressourcen-Leserecht.
- **Benutzerwert:** Feingranulare Vertraulichkeit statt Alles-oder-nichts.
- **Abhängigkeiten:** DOC-001, FOUND-004
- **Datenmodell:** `dokument.erforderliche_berechtigung` (optional, FK auf
Berechtigung/Rolle)
- **Backend:** Zugriffsprüfung beim Download
- **Frontend:** Sichtbarkeits-Einstellung beim Upload
- **Mobile:** Zugriffsprüfung
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Dokumentenbereich (eingeschränkte Dokumente ggf. ausgeblendet statt Fehler)
- **Rechte:** ist Gegenstand dieser Kachel
- **Audit:** Zugriffsversuch auf gesperrtes Dokument könnte geloggt werden (P3-Detail)
- **Akzeptanzkriterien:** Dokument mit Einschränkung ist für nicht-berechtigte Nutzer
nicht abrufbar.
- **Tests:** Zugriffstest mit/ohne Berechtigung.
- **DoD:** komplett neu in MABEA — aktuell haben alle Dokumente dieselbe pauschale
Sichtbarkeit (Rollen-Gate nur global fürs Hochladen/Löschen, nicht je Dokument).
---
**MABEA-Ist-Stand-Abgleich:** DOC-001 ist vollständig und solide umgesetzt (inkl.
Sicherheits-Whitelist gegen Path-Traversal, generisch wiederverwendbares Panel). DOC-002…005
fehlen alle komplett, sind aber bewusst als P2 eingestuft — keine dieser vier Lücken
blockiert den praktischen Alltagsnutzen des bestehenden Dokumente-Moduls, sie verfeinern
nur Kategorisierung, Historisierung, rechtliche Klarheit und Vertraulichkeit.