Skip to content

Commit

Permalink
Extended structurizr docs with component list.
Browse files Browse the repository at this point in the history
RISDEV-1593
  • Loading branch information
danielburgmann committed Sep 21, 2023
1 parent 7c7a03c commit fd56647
Show file tree
Hide file tree
Showing 4 changed files with 725 additions and 280 deletions.
30 changes: 15 additions & 15 deletions .talismanrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,32 @@ fileignoreconfig:
- filename: _site/*
ignore_detectors:
- filecontent
- filename: _site/prototype-footnotes/assets/index-086108b4.js
checksum: 0bd435f734159482c18b1f78fbde74f6b3be56604f380ac59405dc240cf8a270
- filename: backend/src/main/kotlin/de/bund/digitalservice/ris/norms/framework/adapter/input/restapi/controller/GetFileController.kt
checksum: f989b3c9c176b1b985c2f78ca6ca13fa1403cbb69f367ae9b1cb8ea64d5f6747
- filename: backend/src/test/java/de/bund/digitalservice/ris/caselaw/integration/tests/JurisXmlExporterWrapperIntegrationTest.java
checksum: f50e29a97b3766cd195dd27d291e2d8ed043299f1c3ef42dd35f1217782b19b9
- filename: backend/src/test/kotlin/unit/adapter/input/restapi/controller/GenerateNormFileControllerTest.kt
checksum: 930c2643a15a900f328d1d83792e51b12af71cc20136ba43b13fffdffd601e8f
- filename: backend/src/test/kotlin/unit/adapter/input/restapi/controller/GetFileControllerTest.kt
checksum: 527612bd680d9d2b7be5b55ad201bfbd94aea3b55d8dd97ae0ceedbee8cfe76d
- filename: backend/src/test/kotlin/unit/application/service/GetFileServiceTest.kt
checksum: 8133265c6f388df84a3e0f61050428e8628853e0ba80b432e4723750a34b781e
- filename: compose.yaml
checksum: 32471330995a815cfa44221e03835e3155864c462deeef81a0e3e3c8fc70c8fc
- filename: doc/norms/backend-api.yaml
checksum: df4fa1f7e6d7023f9a7a98d1052c2b88c1785366962004b3165453edcd5bf4db
- filename: doc/structurizr/workspace.json
checksum: 3e4a3d02bf05d6e0d930ddb6c965a2e512daded3b93127c9ad41feb875007153
checksum: 2fbbbb947f0211e3a304f4ac7ea04c656d028e30b83da4a084dbac3036236056
- filename: frontend/Dockerfile.prod
checksum: 7d2bf465ac9330fbe891d62a1e4a9ff50a7434c5b284d2197cfad33b72451f7b
- filename: frontend/FRONTEND_STYLEGUIDE.md
checksum: e6b8194eba2012f2a769c5a5d3577715a573b441a7b94e744c32b3149d0d3a93
- filename: frontend/test/test-helper/dataGenerators.ts
checksum: a3d04d1168dcc221ba5fcd72e8d8bada60f48644c7586bde3a7602b748d0682c
- filename: backend/src/test/kotlin/unit/adapter/input/restapi/controller/GetFileControllerTest.kt
checksum: 527612bd680d9d2b7be5b55ad201bfbd94aea3b55d8dd97ae0ceedbee8cfe76d
- filename: backend/src/test/kotlin/unit/application/service/GetFileServiceTest.kt
checksum: 8133265c6f388df84a3e0f61050428e8628853e0ba80b432e4723750a34b781e
- filename: frontend/src/main.ts
checksum: 6da41131746ac5689a7b0a5b65d2967ba0285abe20a20e341ffc92a83218ed0b
- filename: _site/prototype-footnotes/assets/index-086108b4.js
checksum: 0bd435f734159482c18b1f78fbde74f6b3be56604f380ac59405dc240cf8a270
- filename: backend/src/main/kotlin/de/bund/digitalservice/ris/norms/framework/adapter/input/restapi/controller/GetFileController.kt
checksum: f989b3c9c176b1b985c2f78ca6ca13fa1403cbb69f367ae9b1cb8ea64d5f6747
- filename: frontend/Dockerfile.prod
checksum: 7d2bf465ac9330fbe891d62a1e4a9ff50a7434c5b284d2197cfad33b72451f7b
- filename: compose.yaml
checksum: 32471330995a815cfa44221e03835e3155864c462deeef81a0e3e3c8fc70c8fc
- filename: frontend/test/test-helper/dataGenerators.ts
checksum: a3d04d1168dcc221ba5fcd72e8d8bada60f48644c7586bde3a7602b748d0682c
scopeconfig:
- scope: node
allowed_patterns:
Expand Down
28 changes: 28 additions & 0 deletions doc/structurizr/components.dsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# TODO get this list from code directly
component "MailTrackingService" "Übersetzt Events aus der Rückmeldung des jDV Versands"
component "SendInBlueMailTrackingService"

component "EmailPublishService" "Veröffentlicht Dokumentationseinheiten per Email an die jDV"
component "XmlEMailPublishService" "Versendet Emails"

component "DocumentUnitStatusService" "Bearbeitet den Status von Dokumentationseinheiten"
component "DatabaseDocumentUnitStatusService" "Funktionalität rund um Dokumentationsstatus"

component "DocumentNumberService" "Stellt Dokumentennummern bereit"
component "DatabaseDocumentNumberService" "Funktionalität rund um Doknummern"

component "LookupTableService"
component "LookupTableImporterService" "Importiert Wertetabellen"

component "FeatureToggleService" "Stellt Feature Toggles zur Nutzung bereit"
component "UnleashService" "Holt Feature Toggle Informationen"

component "UserService" "Stellt Nutzerinfromationen bereit"
component "KeycloakUserService" "Holt Informationen zu Nutzern und Gruppen von Keycloak"

component "NormAbbreviationService" "Funktionalität rund um Normenabkürzung"
component "FieldOfLawService" "Funktionalität rund um Rechtsgebiete"
component "AuthService" "Autorisierung von Nutzerzugriffen"
component "KeywordService" "Funktionalität rund um Normenabkürzung"
component "DocxConverterService" "Konvertiert Rechtsprechungsdokumente im Dokumentationseinheiten"
component "DocumentUnitService" "Funktionalität rund um Dokumentationseinheiten"
38 changes: 32 additions & 6 deletions doc/structurizr/workspace.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,20 @@ workspace {
group "DigitalService" {
ris = softwareSystem "RIS" {
risFrontend = container "Web-Anwendung" "Stellt das grafische Nutzerinterface zur Verfügung" "Typescript, Vue"
monitoring = container "Monitoring" "Stellt Systeminformationen grafisch da" "Grafana"
risBackend = container "API Anwendung" "Bietet sämtliche backend Funktionalitäten zum Dokumentieren an" "Java, Kotlin, Spring, WebFlux"
risBackend = container "API Anwendung" "Bietet sämtliche backend Funktionalitäten zum Dokumentieren an" "Java, Kotlin, Spring, WebFlux" {
!include ./components.dsl
}
sessionStore = container "Nutzersession Speicher" "Speicher Nutzersession zwischen" "Redis" "datastore"
database = container "Datenbank" "Speichert alle Dokumente und Tabellen" "Postgresql" "datastore"
fileStore = container "Datei Speicher" "Speichert alle Dokumente und Tabellen" "S3 compatible" "datastore"

monitoring = container "Monitoring" "Stellt Systeminformationen grafisch da" "Grafana"

publicationStore = container "Publikationsspeicher" "Speichert die öffentlich verfügbaren Dokumente für das Portal" "S3(?), LegalDocML" "datastore,future"
portalBackend = container "Portal API-Anwendung" "Indiziert und stellt Suchfunktion" "Java(?)" "future"
portalFrontend = container "Portal Web-Anwendung" "Grafisches Nutzerinterface zur Recherche" "Typescript, Vue (?)" "future"

risMigration = container "Migration Tool" "Kommandozeilenwerkzeug zur Übernahme der jDV Daten" "Java" "migration"
}
}

Expand All @@ -32,7 +38,10 @@ workspace {

group "Externe Anbieter" {
openIdProvider = softwareSystem "IAM Anbieter" "Bare.ID (OpenID Connect)" "saas"
emailApiProvider = softwareSystem "E-Mail Anbieter" "SendInBlue" "saas"
emailApiProvider = softwareSystem "E-Mail Anbieter (Versand)" "SendInBlue" "saas"
emailHoster = softwareSystem "E-Mail Anbieter (Empfang)" "IONOS" "saas"

errorMonitoring = softwareSystem "Error Tracker" "Sentry überwacht und sammelt auftretende Fehler" "saas"
}

# relationships between people and software systems
Expand All @@ -59,15 +68,18 @@ workspace {
systemAdministrator -> monitoring "liest Systeminformationen" "HTTPS"

risFrontend -> risBackend "nutzt" "JSON/HTTPS"
monitoring -> risBackend "holt Systeminformationen" "HTTPS"
risFrontend -> errorMonitoring "sendet Fehler" "JSON, HTTPS"

risBackend -> database "speichern & lesen" "R2DBC"
risBackend -> sessionStore "speichern & lesen" "RESP"
risBackend -> fileStore "speichern & lesen" "S3 Protocol"
risBackend -> openIdProvider "prüft Nutzer" "HTTPS"
risBackend -> emailApiProvider "sendet E-Mails" "XML, HTTPS"
risBackend -> publicationStore "publiziert nach" "LegalDocML, HTTPS"
risBackend -> errorMonitoring "sendet Fehler" "JSON, HTTPS"

monitoring -> risBackend "holt Systeminformationen" "HTTPS"

portalFrontend -> portalBackend "nutzt" "HTTPS"
portalFrontend -> publicationStore "verweist auf" "HTTPS"
portalBackend -> publicationStore "indiziert" "HTTPS(?)"
Expand All @@ -92,8 +104,15 @@ workspace {
}
}
deploymentNode "Cloud" "" "Open Telecom Cloud" "" {
deploymentNode "bigbank-dev001" "" "" "" {
softwareSystemInstance ris
deploymentNode "Compute Cluster" "" "Kubernetes" "" {
containerInstance risFrontend
containerInstance risBackend
}
deploymentNode "Managed Database" "" "PostgreSQL" "" {
containerInstance database
}
deploymentNode "Object Storage" "" "AWS S3 compatible" "" {
containerInstance fileStore
}
}

Expand Down Expand Up @@ -122,6 +141,10 @@ workspace {
exclude publicUser
}

component risBackend "BackendComponents" {
include *
}

styles {
element "Person" {
color #ffffff
Expand All @@ -146,6 +169,9 @@ workspace {
element "future" {
background #DB005B
}
element "migration" {
background #02a35a
}

}
}
Expand Down
Loading

0 comments on commit fd56647

Please sign in to comment.