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
This commit is contained in:
@@ -222,6 +222,7 @@ eigenes Modul (MAINT-\*, MABEA hat nur Prüfung, keine Wartung)**.
|
||||
| `11_defects.md` | DEFECT-001 … DEFECT-005 (vollständig) |
|
||||
| `12_personnel.md` | PERS-001 … PERS-007 (vollständig) |
|
||||
| `13_readiness.md` | READY-001 … READY-005 (vollständig) |
|
||||
| `14_documents.md` | DOC-001 … DOC-005 (vollständig) |
|
||||
|
||||
Restliche Kacheln (DOC, MOBILE, OPS): nur Zeile in der Tabelle oben, Details folgen nach
|
||||
Restliche Kacheln (MOBILE, OPS): nur Zeile in der Tabelle oben, Details folgen nach
|
||||
Freigabe.
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user