This website requires JavaScript.
Explore
Help
Register
Sign In
marcel
/
familienarchiv
Watch
1
Star
0
Fork
0
You've already forked familienarchiv
Code
Issues
111
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
421d7ffd3790290339b043b9efc773af7ca19ee3
familienarchiv
/
docs
/
architecture
/
c4
/
l3-backend-3b-document-management.puml
Marcel
9387fcc17b
docs(c4): add L3 backend 3a security and 3b document management
2026-05-06 22:52:21 +02:00
3.3 KiB
Raw
Blame
History
Component Diagram: API Backend â Document Management & Import
Component Diagram: API Backend â Document Management & Import
API Backend (Spring Boot)
[system]
«component»
DocumentController
[Spring
MVC
â
/api/documents]
CRUD
for
documents:
search,
get
by
ID,
update
metadata,
upload/download
file,
conversation
thread,
and
batch
metadata
updates.
«component»
AdminController
[Spring
MVC
â
/api/admin]
Triggers
asynchronous
Excel/ODS
mass
import
(requires
ADMIN
permission).
Reports
import
state
(IDLE/RUNNING/DONE/FAILED).
«component»
DocumentService
[Spring
Service]
Core
document
business
logic:
store,
update,
search.
Resolves
persons
and
tags,
delegates
file
I/O
to
FileService,
builds
dynamic
JPA
Specifications,
and
integrates
with
audit
logging.
«component»
FileService
[Spring
Service]
Wraps
AWS
SDK
v2
S3Client.
Uploads
files
with
UUID-keyed
paths,
computes
SHA-256
hash,
downloads
with
content-type
detection,
and
generates
presigned
URLs
for
OCR
access.
«component»
MassImportService
[Spring
Service
â
@Async]
Reads
Excel/ODS
files
from
/import
mount.
Tracks
import
state
(IDLE/RUNNING/DONE/FAILED)
and
delegates
to
ExcelService.
Returns
immediately;
processing
runs
asynchronously.
«component»
ExcelService
[Spring
Service]
Parses
Excel/ODS
workbooks
(Apache
POI).
Column
indices
configurable
via
application.properties.
Creates/updates
document
records
per
row.
«component»
MinioConfig
[Spring
@Configuration]
Creates
the
S3Client
and
S3Presigner
beans
with
path-style
access
for
MinIO.
Validates
MinIO
connectivity
on
startup.
«component»
DocumentRepository
[Spring
Data
JPA]
Queries
documents
with
Specification-based
dynamic
search,
bidirectional
conversation
thread
queries,
full-text
search
with
ranking
and
match
highlighting,
and
transcription
pipeline
queue
projections.
«component»
DocumentSpecifications
[JPA
Criteria
API]
Factory
for
composable
predicates:
hasText
(full-text),
hasSender,
hasReceiver,
isBetween
(date
range),
hasTags
(subquery
AND/OR
logic).
«container»
Web
Frontend
[SvelteKit]
«container»
PostgreSQL
[PostgreSQL
16]
«container»
Object
Storage
[MinIO
(S3-compatible)]
«component»
PersonService
[Spring
Service]
See
diagram
3e.
Called
by
DocumentService
to
resolve
sender
/
receiver
persons
by
ID.
«component»
TagService
[Spring
Service]
See
diagram
3d.
Called
by
DocumentService
to
find
or
create
tags
by
name.
Document
requests
[HTTP
/
JSON]
Trigger
import
[HTTP
/
JSON]
Delegates
to
Triggers
Upload
/
download
files
Reads
/
writes
documents
Builds
search
predicates
Resolves
sender
/
receivers
Finds
or
creates
tags
Parses
Excel/ODS
file
Creates
/
updates
documents
Provides
S3Client
and
S3Presigner
beans
PUT
/
GET
/
presigned
URL
objects
[S3
API
/
HTTP]
SQL
queries
[JDBC]
Reference in New Issue
View Git Blame
Copy Permalink