initial scaffold: structure, build setup, chapter stubs, diagrams

This commit is contained in:
2026-08-25 19:04:44 +02:00
parent ea69e2736e
commit 34f1863882
69 changed files with 1042 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
\section{Zielerreichung}
\label{sec:evaluation}
% TODO
+6
View File
@@ -0,0 +1,6 @@
\section{Ausblick}
\label{sec:outlook}
% TODO: PBI 10070 (Race Conditions), Search Integration (von AU noch nicht verfügbar),
% Dashboard-Kacheln (Security Assessments, zuletzt hinzugefügte Dokumente),
% Abrechnungsdaten
+5
View File
@@ -0,0 +1,5 @@
\section{Reflexion}
\label{sec:reflection}
% TODO: Lessons Learned — S3-Lookup-Entscheidung, Race Conditions als offenes Thema,
% Infrastruktur-Vorlauf unterschätzt (AU-Kommunikation 2026-07-22 bis 2026-08-07)
+4
View File
@@ -0,0 +1,4 @@
\section{Soll-Ist-Vergleich}
\label{sec:target-comparison}
% TODO: Tabelle Soll-Ist (Zeitplan, Features)
+1
View File
@@ -0,0 +1 @@
% TODO: Kapitel aus PidI 2 übernehmen und auf PidI 3 aktualisieren
@@ -0,0 +1 @@
% TODO: Kapitel aus PidI 2 übernehmen und auf PidI 3 aktualisieren
+1
View File
@@ -0,0 +1 @@
% TODO: Kapitel aus PidI 2 übernehmen und auf PidI 3 aktualisieren
+13
View File
@@ -0,0 +1,13 @@
\section{Autorisierungskonzept}
\label{sec:authorization}
% TODO: App-Rolle Documents.Read (Entra ID), Claim efecte:company_id
% Menüpunkt nur sichtbar mit Rolle, Direktzugriff ohne Rolle → 403 (nicht 404)
% Sequence-Diagramm auth-sequence.pdf
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.9\textwidth]{figures/diagrams/auth-sequence.pdf}
% \caption{Autorisierungsablauf}
% \label{fig:auth-sequence}
% \end{figure}
+7
View File
@@ -0,0 +1,7 @@
\section{Dokumententypen und Icons}
\label{sec:document-types}
% TODO: 7 Typen hardcoded in Houston (PBI 9560/9549):
% Service-Protokoll, Abnahme Dokumente, SLA-Reports, Monitoring Reports,
% Security Assessments, Abrechnungsdaten, Vertragsunterlagen
% Typzuordnung über Unterordnername, Tabelle im Anhang
+13
View File
@@ -0,0 +1,13 @@
\section{Architekturentscheidung: O(1)-Fast-Path}
\label{sec:lookup-decision}
% TODO: PBI 10018 — metadatenbasierter Fast-Path
% ResolveCustomerPrefixAsync: Fast-Path → Kollisions-Fast-Path → O(n)-Fallback + Self-Healing-Rename
% Houston als führende Instanz für Ordnerbenennung
% \begin{figure}[H]
% \centering
% \includegraphics[width=\textwidth]{figures/diagrams/lookup-flow.pdf}
% \caption{Ablauf \texttt{ResolveCustomerPrefixAsync}}
% \label{fig:lookup-flow}
% \end{figure}
+8
View File
@@ -0,0 +1,8 @@
\section{Problem: Lookup des Kundenordners}
\label{sec:lookup-research}
% TODO: PBI 9857 — S3 kann nicht nach Metadaten-Tags suchen → lineares Scannen aller Top-Level-Prefixes
% Trade-off-Matrix der 6 Varianten (In-Memory Cache, Claim, Efecte-Feld, S3 SelectObject, Search Integration, Prefix im Namen)
% \cite{aws-s3-select}, \cite{storagegrid-search-integration}
% Tabelle~\ref{tab:lookup-tradeoffs} im Anhang
+14
View File
@@ -0,0 +1,14 @@
\section{Ablagekonzept im S3-Speicher}
\label{sec:s3-layout}
% TODO: Ordnerbaum (Feature 484):
% Bucket → Kundenordner [meta: efecte_org-id] → Typordner/ → Dokumente
% Typ = Unterordner, nicht Metadatum an der Datei
% Leere Ordner werden nicht angezeigt
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.75\textwidth]{figures/diagrams/s3-layout.pdf}
% \caption{S3-Ablagestruktur}
% \label{fig:s3-layout}
% \end{figure}
+5
View File
@@ -0,0 +1,5 @@
\section{UI-Konzept und Clickdummy}
\label{sec:ui-concept}
% TODO: Hanna Ebner, Branch Clickdummy_Dokumente (2026-07-22)
% Listenansicht, Typfilter oben als Buttons, flexible Tabellenspalten
+12
View File
@@ -0,0 +1,12 @@
\section{Architektur des Documents-Moduls}
\label{sec:architecture}
% TODO: Razor Page DocumentsPage.cshtml → DocumentsService → S3DocumentsClient
% Klassendiagramm module-components.pdf
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.9\textwidth]{figures/diagrams/module-components.pdf}
% \caption{Komponentenstruktur des Documents-Moduls}
% \label{fig:module-components}
% \end{figure}
+5
View File
@@ -0,0 +1,5 @@
\section{Document Explorer}
\label{sec:document-explorer}
% TODO: PBI 9295 — /documents Seite, ListObjectsV2, Empty State, Fehlerbehandlung
% Abbildung~\ref{fig:documents-page-model}, \ref{fig:document-view-model}, \ref{fig:documents-table-body}
+13
View File
@@ -0,0 +1,13 @@
\section{Dokumenten-Downloads}
\label{sec:downloads}
% TODO: PBI 9299 (Einzeldownload), PBI 9296 (ZIP-Download)
% Streaming: S3 GetObject → ZipArchive → HTTP Response Stream
% Abbildung~\ref{fig:zip-download-action}
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.9\textwidth]{figures/diagrams/zip-stream.pdf}
% \caption{ZIP-Download-Ablauf}
% \label{fig:zip-stream}
% \end{figure}
+6
View File
@@ -0,0 +1,6 @@
\section{Typfilter und Paginierung}
\label{sec:filter-pagination}
% TODO: PBI 9749 (Typfilter), PBI 9731 (Pagination)
% ContinuationToken statt Offset-Pagination
% Abbildung~\ref{fig:pagination-continuation-token}
+8
View File
@@ -0,0 +1,8 @@
\section{Ordnerstruktur und Kundenordner-Lookup}
\label{sec:folder-management}
% TODO: PBI 9560 (Ordneranlage beim ersten Seitenaufruf), PBI 10018 (O(1)-Lookup)
% OrgSlug: deterministische, S3-konforme Normalisierung des Efecte-Namens (Umlaute bleiben erhalten)
% IBM-Naming-Constraints: \cite{ibm-s3-naming}
% ResolveCustomerPrefixAsync, Self-Healing-Rename
% Abbildung~\ref{fig:org-slug}, \ref{fig:resolve-customer-prefix}, \ref{fig:rename-customer-folder}
+6
View File
@@ -0,0 +1,6 @@
\section{PDF-Modal-Vorschau und Share-Link-Previews}
\label{sec:pdf-preview}
% TODO: PBI 9300 (PDF-Modal), PBI 9294 (Share-Link-Previews)
% Pre-Signed URLs, zeitlich begrenzte Gültigkeit
% Abbildung~\ref{fig:presigned-url}
+15
View File
@@ -0,0 +1,15 @@
\section{Bekannte Grenze: Race Conditions im Lookup}
\label{sec:race-conditions}
% TODO: PBI 10070 — Houston läuft in mehreren Instanzen, In-Memory-Lock reicht nicht
% Szenario A: Datenverlust beim parallelen Rename (Rollback löscht Dokumente des Gewinners)
% Szenario B: Mandantenvermischung beim gleichzeitigen Anlegen gleicher Efecte-Namen
% Lösungsansätze: Rollback-Absicherung, Conditional Writes, verteiltes Lock, prozessuale Migration
% Timebox: 4–6 Stunden (Stephan Janßen)
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.9\textwidth]{figures/diagrams/race-condition-a.pdf}
% \caption{Race Condition Szenario A: Datenverlust beim parallelen Rename}
% \label{fig:race-condition-a}
% \end{figure}
+5
View File
@@ -0,0 +1,5 @@
\section{Anbindung des S3-Speichers}
\label{sec:s3-client}
% TODO: AWS SDK für .NET, IAmazonS3, keyed services in Program.cs, S3Settings (DEV/TEST/PROD Buckets)
% Abbildung~\ref{fig:s3-settings-registration}, \ref{fig:s3-documents-client}
+6
View File
@@ -0,0 +1,6 @@
\section{Serverseitige Suche}
\label{sec:search}
% TODO: PBI 9298 — Suchleiste, titelbasiert, Teiltreffer, serverseitiges Filtern
% S3-API bietet keine direkte Filterung → Houston-seitiger Filter
% Abbildung~\ref{fig:document-search}
+5
View File
@@ -0,0 +1,5 @@
\section{Dokumenttypen und Icons}
\label{sec:type-icons}
% TODO: PBI 9549 — Typ-Mapping aus Unterordner, .resx-Lokalisierung
% Abbildung~\ref{fig:document-type-mapping}, \ref{fig:document-types-resx}
+5
View File
@@ -0,0 +1,5 @@
\section{Support für URL-Dateien}
\label{sec:url-files}
% TODO: PBI 9301 — .url-Dateien parsen, Verlinkung beliebiger URLs (Teams, SharePoint)
% Abbildung~\ref{fig:url-file-parsing}
+5
View File
@@ -0,0 +1,5 @@
\section{Ausgangssituation}
\label{sec:initial-situation}
% TODO: Feature 484 lag 2,5 Jahre im Backlog (Nicole Kimmel, 2023-11-02).
% Bisher kein zentraler Dokumentenzugang für Kunden.
+4
View File
@@ -0,0 +1,4 @@
\section{Beteiligte und Rollen}
\label{sec:participants}
% TODO: Tabelle aus note-1787657238720 (Beteiligte)
@@ -0,0 +1,4 @@
\section{Projektbeschreibung}
\label{sec:project-description}
% TODO
+7
View File
@@ -0,0 +1,7 @@
\section{Projektabgrenzung}
\label{sec:project-scope}
% TODO: Out of Scope aus Feature 484:
% - Kunde kann Dokumente nicht bearbeiten
% - Keine neuen Ordner intern wild anlegen
% - Filestash ist externes Admin-UI (kein Houston-Eigenbau)
+12
View File
@@ -0,0 +1,12 @@
\section{Systemlandschaft}
\label{sec:system-landscape}
% TODO: Houston (ASP.NET Core, Razor Pages) — Efecte — Microsoft Entra ID — S3/StorageGRID — Filestash
% Diagramm:
% \begin{figure}[H]
% \centering
% \includegraphics[width=0.9\textwidth]{figures/diagrams/system-context.pdf}
% \caption{Systemkontext}
% \label{fig:system-context}
% \end{figure}
+4
View File
@@ -0,0 +1,4 @@
\section{Zielsituation}
\label{sec:target-situation}
% TODO: Feature 484 Rev 38 — Dokumentenbereich in Houston, 7 Dokumententypen, S3-Ablage, Filestash als Admin-UI
+14
View File
@@ -0,0 +1,14 @@
\section{Backlog-Schnitt und Schätzung}
\label{sec:backlog}
% TODO: 14 PBIs + 1 Bug unter Feature 484
% Prozess: DoR, DoD, Approval-Team, Sprints 15–17.2026
% Siehe Tabelle~\ref{tab:backlog} im Anhang
% Gantt:
% \begin{figure}[H]
% \centering
% \includegraphics[width=\textwidth]{figures/diagrams/gantt-plan.pdf}
% \caption{Zeitplanung über Sprints 15–17.2026}
% \label{fig:gantt}
% \end{figure}
+7
View File
@@ -0,0 +1,7 @@
\section{Feature-Analyse}
\label{sec:feature-analysis}
% TODO: 18.06.2026 — 4 Rückfragen von Linus an Thomas, Antworten im selben Ticket (Feature 484 Rev 17–32)
% - Autorisierung via Metadatum: ja
% - Filestash als externe Website (kein Custom-UI): ja
% - ...
+15
View File
@@ -0,0 +1,15 @@
\section{Infrastrukturbeschaffung}
\label{sec:infrastructure}
% TODO: Service Requests an Maschinenraum (2026-07-22), Provisionierung durch Advanced Unibyte,
% 3 Buckets (DEV/TEST/PROD), Credentials in Passbolt (2026-07-27)
% Anfrage S3 Select (2026-07-30), Aktivierung durch AU (2026-08-07)
% Search Integration: von AU nicht bereitgestellt (2026-08-17)
% Timeline-Diagramm:
% \begin{figure}[H]
% \centering
% \includegraphics[width=\textwidth]{figures/diagrams/timeline-infra.pdf}
% \caption{Chronologie der Infrastrukturbeschaffung}
% \label{fig:timeline-infra}
% \end{figure}
+5
View File
@@ -0,0 +1,5 @@
\section{Einarbeitung}
\label{sec:onboarding}
% TODO: S3-API, AWS SDK für .NET, StorageGRID-Dokumentation
% Quellen: note-1785344962361 (S3-Recherche mit Timo), note-1785413874041
+5
View File
@@ -0,0 +1,5 @@
\section{Anforderungserhebung}
\label{sec:requirements}
% TODO: Funktionale und nichtfunktionale Anforderungen aus den PBI-ACs
% Tabelle: Anforderungsmatrix (funktional / nichtfunktional → PBI)
+4
View File
@@ -0,0 +1,4 @@
\section{Zeit- und Aufwandsplanung}
\label{sec:schedule}
% TODO: Sprints 15–17.2026, Aufwandsschätzungen (Story Points), 24 Manntage / 192 h gesamt
+5
View File
@@ -0,0 +1,5 @@
\section{Abnahmetest}
\label{sec:acceptance-testing}
% TODO: Maria-Lena Andersz — Sichtbarkeitsproblem des Menüpunkts (2026-08-13)
% Rollenzuweisung klären, Bug 10134 (Suchfunktion), finale Abnahme 2026-08-24/25
+7
View File
@@ -0,0 +1,7 @@
\section{Code-Reviews}
\label{sec:code-reviews}
% TODO: 11 PRs (2154–2196), Reviewer: Timo Walter, Sarah Hinzmann, Robin Noack
% Reviewfunde: zentrale Auth über Program.cs, keyed Settings, 403 statt 404,
% Slug-Naming-Constraints (IBM-Doku), Fehlerbehandlung statt stiller leerer Seite
% Tabelle~\ref{tab:pull-requests} im Anhang
+5
View File
@@ -0,0 +1,5 @@
\section{Releases}
\label{sec:releases}
% TODO: DEV / TEST / PROD je eigener Bucket, Rollenvergabe vor Release
% PR 2196 noch aktiv bei Dokumentationsabgabe
+4
View File
@@ -0,0 +1,4 @@
\section{Teststrategie}
\label{sec:test-strategy}
% TODO: Unit-Tests mit gemocktem IAmazonS3, Abnahmetests durch Maria-Lena Andersz
+6
View File
@@ -0,0 +1,6 @@
\section{Unit-Tests}
\label{sec:unit-tests}
% TODO: DocumentsServiceTests — gemocktes IAmazonS3
% Pfade: Fast-Path, Fallback, Rename, Create, Kollision, Fehlerfall
% Abbildung~\ref{fig:documents-service-tests}