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
6.1 KiB
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
beschreibungals 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.