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

6.1 KiB

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.