Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DP-685: Update component diagrams #710

Merged
merged 3 commits into from
Oct 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/diagrams/libraries/govUkNotify.dsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

govUkNotifyClient = component "Gov.uk Notify" {
technology "C# project"
description "Gov.uk Notify client"
tags "Shared Component"
}
6 changes: 6 additions & 0 deletions docs/diagrams/libraries/mq.dsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

mq = component "MQ" {
technology "C# project"
description "Message Queue client"
tags "Shared Component"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

organisationInformationPersisence = component "Organisation Information Persistence" {
technology "C# project"
description "Exposes the database model, queries, and persistence operations with EntityFramework Core"
tags "Shared Component"
}
File renamed without changes.
83 changes: 63 additions & 20 deletions docs/diagrams/workspace.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ workspace "Central Digital Platform" {
buyer = person "Buyer"
eSender = softwareSystem "eSender" "Commercial Software that Buyers use to manage tender processes"
oneLogin = softwareSystem "Gov.uk One Login" "Let users sign in and prove their identities to use your service"
govNotify = softwareSystem "Gov.uk Notify" "Sends emails, text messages and letters"
govUkNotify = softwareSystem "Gov.uk Notify" "Sends emails, text messages and letters"
companiesHouse = softwareSystem "Companies House" "Provides registered company details"
fts = softwareSystem "Find a Tender"
cfs = softwareSystem "Supplier Information and Contracts Finder"
Expand All @@ -21,10 +21,20 @@ workspace "Central Digital Platform" {
entityVerificationDatabase = container "Entity Verification Database" "" PostgreSQL Database {
}
entityVerification = container "Entity Verification" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/mq.dsl"
}
entityVerificationEndpoint = component "Entity Verification Endpoint" "Queries known identifers." "Asp.Net Core Web API"
entityVerificationUseCase = component "Use Case"
entityVerificationUseCase -> messageQueue "publishes to / listens to" "HTTPS"
-> entityVerificationDatabase "reads/writes" "SQL"
useCase = component "Use Case"
mqSubscriber = component "Message Subscriber"
persistence = component "Persistence" "EntityFramework Core model and repositories" "C# Namespace"
entityVerificationEndpoint -> useCase "Executes"
useCase -> persistence "Calls"
mqSubscriber -> persistence "Calls"
useCase -> mq "Calls"
mq -> messageQueue "publishes to / listens to" "HTTPS"
mq -> mqSubscriber "Calls"
persistence -> entityVerificationDatabase "reads/writes" "SQL"
}
}

Expand All @@ -35,48 +45,81 @@ workspace "Central Digital Platform" {
}

authority = container "Authority" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
}
openIdConfigurationEndpoint = component "OpenID Well-Known Configuration Endpoint" "Exposes OpenID configuration" "Asp.Net Core Web API"
openIdJwksConfigurationEndpoint = component "OpenID Well-Known JWKS Configuration Endpoint" "Exposes Json Web Key Set" "Asp.Net Core Web API"
tokenEndpoint = component "Token endpoint" "Exchanges a valid One Login token to a longer-lived token with additional claims." "Asp.Net Core Web API"
-> organisationInformationDatabase "reads/writes" "SQL"
tokenService = component "Token Service" "Creates and validates authentication tokens"
tokenEndpoint -> tokenService "Calls"
tokenService -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
}
tenantApi = container "Tenant API" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
}
tenantEndpoint = component "Tenant Endpoint" "" "Asp.Net Core Web API"
registerTenantUseCase = component "Register Tenant Use Case"
getTenantUseCase = component "Get Tenant Use Case"
tenantPersistence = component "Persistence" "" "Project"
tenantEndpoint -> registerTenantUseCase "Executes"
tenantEndpoint -> getTenantUseCase "Executes"
registerTenantUseCase -> tenantPersistence "Calls"
getTenantUseCase -> tenantPersistence "Calls"
tenantPersistence -> organisationInformationDatabase "reads/writes" "SQL"
useCase = component "Use Case"
tenantEndpoint -> useCase "Executes"
useCase -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
}
personApi = container "Person API" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
}
personEndpoint = component "Person Endpoint" "" "Asp.Net Core Web API"
-> organisationInformationDatabase "reads/writes" "SQL"
useCase = component "Use Case"
personEndpoint -> useCase "Executes"
useCase -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
}
organisationApi = container "Organisation API" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
!include "libraries/mq.dsl"
!include "libraries/govUkNotify.dsl"
}
organisationEndpoint = component "Organisation Endpoint" "" "Asp.Net Core Web API"
useCase = component "Use Case"
useCase -> messageQueue "publishes to / listens to" "HTTPS"
useCase -> govNotify "sends notifications with" "HTTPS"
-> organisationInformationDatabase "reads/writes" "SQL"
mqSubscriber = component "Message Subscriber"
organisationEndpoint -> useCase "Executes"
useCase -> organisationInformationPersisence "Calls"
useCase -> mq "Calls"
useCase -> govUkNotifyClient "Calls"
mqSubscriber -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
mq -> messageQueue "publishes to / listens to" "HTTPS"
mq -> mqSubscriber "Calls"
govUkNotifyClient -> govUkNotify "sends notifications with" "HTTPS"
}
formsApi = container "Forms API" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
}
formsEndpoint = component "Forms Endpoint" "" "Asp.Net Core Web API"
useCase = component "Use Case"
formsEndpoint -> useCase "Executes"
useCase -> fileStorage "writes to" "HTTPS"
-> organisationInformationDatabase "reads/writes" "SQL"
useCase -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
}
dataSharingApi = container "Data Sharing API" "" "Asp.Net Core" WebApi {
group "Libraries" {
!include "libraries/organisationInformationPersistence.dsl"
}
dataSharingEndpoint = component "Data Sharing Endpoint" "" "Asp.Net Core Web API"
useCase = component "Use Case"
dataSharingEndpoint -> useCase "Executes"
useCase -> fileStorage "writes to / reads from" "HTTPS"
-> organisationInformationDatabase "reads/writes" "SQL"
useCase -> organisationInformationPersisence "Calls"
organisationInformationPersisence -> organisationInformationDatabase "reads/writes" "SQL"
}
organisationApp = container "Organisation App" "Account & data capture frontend" "Asp.Net Core MVC" WebApp {
group "Libraries" {
!include "libraries.dsl"
!include "libraries/webApiClients.dsl"
}

mvcController = component "MVC Controller" "Enables web users to perform tasks." "Asp.Net Core MVC Controller"
Expand Down
Loading