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
+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}