Some checks failed
CI / Unit & Component Tests (pull_request) Failing after 47s
CI / OCR Service Tests (pull_request) Successful in 25s
CI / Backend Unit Tests (pull_request) Failing after 5m29s
CI / fail2ban Regex (pull_request) Successful in 47s
CI / Semgrep Security Scan (pull_request) Successful in 26s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m7s
Add timeline/ to the root and backend package tables, TimelineEvent to the domain-model entity tables, TimelineEvent/EventType/Zeitstrahl to the glossary, a new l3-backend-timeline C4 component diagram, and the timeline_events table + two join tables (with their CHECKs and cascade FKs) to the db-orm and db-relationships ER diagrams. Bumps the db-orm snapshot to V77. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
25 lines
1.6 KiB
Plaintext
25 lines
1.6 KiB
Plaintext
@startuml
|
|
!include <C4/C4_Component>
|
|
|
|
title Component Diagram: API Backend — Timeline (Zeitstrahl)
|
|
|
|
ContainerDb(db, "PostgreSQL", "PostgreSQL 16")
|
|
|
|
System_Boundary(backend, "API Backend (Spring Boot)") {
|
|
Component(timelineRepo, "TimelineEventRepository", "Spring Data JPA", "Reads and writes TimelineEvent rows and their persons/documents join tables (timeline_event_persons, timeline_event_documents). Issue #774 ships the repository empty; the per-person filter query lands in a later issue.")
|
|
|
|
Component(timelineSvc, "TimelineEventService", "Spring Service (planned, issue 3)", "Will own curated-event CRUD: assemble TimelineEventView/Summary inside the transaction (lazy ManyToMany + open-in-view=false, per ADR-036/ADR-040), populate createdBy/updatedBy from the session principal, and translate optimistic-lock conflicts to DomainException.conflict.")
|
|
Component(timelineCtrl, "TimelineEventController", "Spring MVC (planned, issue 3)", "Will expose /api/timeline reads (READ_ALL) and writes (WRITE_ALL). createdBy/updatedBy are never bound from request bodies (CWE-639).")
|
|
}
|
|
|
|
System_Ext(documentDomain, "Document domain", "Provides DatePrecision (shared value type) and Document references for linked letters")
|
|
System_Ext(personDomain, "Person domain", "Provides Person references for who an event involves")
|
|
|
|
Rel(timelineRepo, db, "SQL queries", "JDBC")
|
|
Rel(timelineSvc, timelineRepo, "Reads / writes events (planned)")
|
|
Rel(timelineCtrl, timelineSvc, "Delegates to (planned)")
|
|
Rel(timelineRepo, personDomain, "References persons via join table")
|
|
Rel(timelineRepo, documentDomain, "References documents via join table")
|
|
|
|
@enduml
|