generated from ministryofjustice/hmpps-template-kotlin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcontainer.puml
39 lines (28 loc) · 2.93 KB
/
container.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@startuml container
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
skinparam linetype polyline
title [Container] HMPPS Integration API
AddElementTag("not_yet_implemented", $bgColor="#D3D3D3", $fontColor="#9C9C9C")
System_Ext(consumer, "Consumer Application", "An authenticated consumer of the Integration API.")
Boundary(aws_cloudplatform, "Cloud Platform", "A Kubernetes cluster using Amazon Web Services", $link="https://user-guide.cloud-platform.service.justice.gov.uk/documentation/concepts/cp-tech-overview.html") {
Boundary(hmpps_integration_api, "HMPPS Integration API", "A single point of entry for services to retrieve data from multiple HMPPS systems."){
Container(spring_boot_api, "REST API", "Spring Boot Kotlin API", "Pulls data from upstream systems. Data is formatted into standardised models", $link="https://github.com/ministryofjustice/hmpps-integration-api")
SystemQueue_Ext(messaging, "Messaging System", "SNS/SQS Service.",$tags="not_yet_implemented")
}
Container(hmpps_auth, "HMPPS Auth", "Spring Boot Kotlin API", " UI and OAuth2 server integrating with NOMIS database, nDelius (via Community api) and an auth database for storing external users", $link="https://github.com/ministryofjustice/hmpps-auth")
Boundary(upstream, "Legacy Upstream Systems", "Various HMPPS upstream systems, some of these will eventually be replaced"){
Container(prison_api, "Prison API", "Spring Boot Java API", "API over NOMIS DB used by Digital Prison team applications and services", $link="https://github.com/ministryofjustice/prison-api")
Container(probation_offender_search, "Probation Offender Search", "Springoot Kotlin API", "API over the nDelius offender data held in Elasticsearch", $link="https://probation-offender-search-dev.hmpps.service.justice.gov.uk/swagger-ui/index.html")
Container(prisoner_search, "Prisoner Search", "Spring Boot Kotlin API", "API over the NOMIS prisoner data held in OpenSearch", $link="https://github.com/ministryofjustice/hmpps-prisoner-search")
Container(oasys, "OASys", "Spring Boot Kotlin API", "REST access to the OASys Oracle DB offender assessment information", $link="https://github.com/ministryofjustice/offender-assessments-api-kotlin", $tags="not_yet_implemented")
Container(oasys_arn, "Assess Risks and Needs", "Spring Boot Kotlin API", "API over the Risks, Needs and Responsivity (RNR) data for an offender held in the Assess Risks and Needs Service", $link="https://github.com/ministryofjustice/hmpps-assess-risks-and-needs")
Lay_L(prisoner_search, prison_api)
}
}
Rel(consumer, spring_boot_api, "Makes API calls to", "JSON/HTTPS")
Rel(consumer, messaging, "Retrieves updates")
Rel_Right(spring_boot_api, messaging, "Posts updates")
Rel_Right(spring_boot_api, hmpps_auth, "Authenticates", "Bearer Token")
Rel_Down(spring_boot_api, upstream, "Makes API calls to", "JSON/HTTPS")
SHOW_DYNAMIC_LEGEND()
@enduml