diff --git a/docs/diagrams/libraries.dsl b/docs/diagrams/libraries.dsl new file mode 100644 index 000000000..270246ff3 --- /dev/null +++ b/docs/diagrams/libraries.dsl @@ -0,0 +1,30 @@ +tenantClient = component "Tenant Client" { + technology "C# project" + description "Makes API calls to the Tenant API" + tags "Shared Component" +} +personClient = component "Person Client" { + technology "C# project" + description "Makes API calls to the Person API" + tags "Shared Component" +} +organisationClient = component "Organisation Client" { + technology "C# project" + description "Makes API calls to the Organisation API" + tags "Shared Component" +} +formsClient = component "Forms Client" { + technology "C# project" + description "Makes API calls to the Forms API" + tags "Shared Component" +} +dataSharingClient = component "Data Sharing Client" { + technology "C# project" + description "Makes API calls to the Data Sharing API" + tags "Shared Component" +} +entityVerificationClient = component "Entity Verification Client" { + technology "C# project" + description "Makes API calls to the Entity Verification API" + tags "Shared Component" +} diff --git a/docs/diagrams/workspace.dsl b/docs/diagrams/workspace.dsl index 716c9dc1d..4e1877280 100644 --- a/docs/diagrams/workspace.dsl +++ b/docs/diagrams/workspace.dsl @@ -1,87 +1,124 @@ workspace "Central Digital Platform" { + !identifiers hierarchical + model { supplier = person "Supplier" 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" + companiesHouse = softwareSystem "Companies House" "Provides registered company details" fts = softwareSystem "Find a Tender" cfs = softwareSystem "Supplier Information and Contracts Finder" ppg = softwareSystem "Public Procurement Gateway" cdp = softwareSystem "Central Digital Platform" "Supports procurement" { - authority = container "Authority" "" "Asp.Net Core" WebApi { - 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" - } - tenantApi = container "Tenant API" "" "Asp.Net Core" WebApi { - 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" - } - personApi = container "Person API" "" "Asp.Net Core" WebApi { - personEndpoint = component "Person Endpoint" "" "Asp.Net Core Web API" - } - organisationApi = container "Organisation API" "" "Asp.Net Core" WebApi { - organisationEndpoint = component "Organisation Endpoint" "" "Asp.Net Core Web API" - } - formsApi = container "Forms API" "" "Asp.Net Core" WebApi { - formsEndpoint = component "Forms Endpoint" "" "Asp.Net Core Web API" - } - dataSharingApi = container "Data Sharing API" "" "Asp.Net Core" WebApi { - dataSharingEndpoint = component "Data Sharing Endpoint" "" "Asp.Net Core Web API" + + messageQueue = container "Message Queue" "" SQS "Message Queue" { } - database = container "Organisation Information Database" "" PostgreSQL Database { - tenantPersistence -> database "reads/writes" "SQL" + + group "Entity Verification" { + entityVerificationDatabase = container "Entity Verification Database" "" PostgreSQL Database { + } + entityVerification = container "Entity Verification" "" "Asp.Net Core" WebApi { + 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" + } } - webApp = container "Web Application" "Account & data capture frontend" "Asp.Net Core MVC" WebApp { - mvcController = component "MVC Controller" "Enables web users to perform tasks." "Asp.Net Core MVC Controller" - - tenantClient = component "Tenant Client" "Makes API calls to the Tenant API" "library" - personClient = component "Person Client" "Makes API calls to the Person API" "library" - organisationClient = component "Organisation Client" "Makes API calls to the Organisation API" "library" - formsClient = component "Forms Client" "Makes API calls to the Forms API" "library" - dataSharingClient = component "Data Sharing Client" "Makes API calls to the Data Sharing API" "library" - - supplier -> mvcController "Uses" "HTTPS" - - mvcController -> oneLogin "Authenticates with" "HTTPS" - mvcController -> tokenEndpoint "Authenticates and authorises with" "HTTPS" - mvcController -> tenantClient "Uses" - mvcController -> personClient "Uses" - mvcController -> organisationClient "Uses" - mvcController -> formsClient "Uses" - mvcController -> dataSharingClient "Uses" + + group "Organisation Information" { + organisationInformationDatabase = container "Organisation Information Database" "" PostgreSQL Database { + } + fileStorage = container "File Storage" "" S3 "File Storage" { + } + + authority = container "Authority" "" "Asp.Net Core" WebApi { + 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" + } + tenantApi = container "Tenant API" "" "Asp.Net Core" WebApi { + 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" + } + personApi = container "Person API" "" "Asp.Net Core" WebApi { + personEndpoint = component "Person Endpoint" "" "Asp.Net Core Web API" + -> organisationInformationDatabase "reads/writes" "SQL" + } + organisationApi = container "Organisation API" "" "Asp.Net Core" WebApi { + 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" + } + formsApi = container "Forms API" "" "Asp.Net Core" WebApi { + formsEndpoint = component "Forms Endpoint" "" "Asp.Net Core Web API" + useCase = component "Use Case" + useCase -> fileStorage "writes to" "HTTPS" + -> organisationInformationDatabase "reads/writes" "SQL" + } + dataSharingApi = container "Data Sharing API" "" "Asp.Net Core" WebApi { + dataSharingEndpoint = component "Data Sharing Endpoint" "" "Asp.Net Core Web API" + useCase = component "Use Case" + useCase -> fileStorage "writes to / reads from" "HTTPS" + -> organisationInformationDatabase "reads/writes" "SQL" + } + webApp = container "Web Application" "Account & data capture frontend" "Asp.Net Core MVC" WebApp { + group "Libraries" { + !include "libraries.dsl" + } + + mvcController = component "MVC Controller" "Enables web users to perform tasks." "Asp.Net Core MVC Controller" + + supplier -> mvcController "Uses" "HTTPS" + buyer -> mvcController "Uses" "HTTPS" + + mvcController -> oneLogin "Authenticates with" "HTTPS" + mvcController -> companiesHouse "Pulls company details from" "HTTPS" + mvcController -> authority.tokenEndpoint "Authenticates and authorises with" "HTTPS" + mvcController -> tenantClient "Uses" + mvcController -> personClient "Uses" + mvcController -> organisationClient "Uses" + mvcController -> formsClient "Uses" + mvcController -> dataSharingClient "Uses" + mvcController -> entityVerificationClient "Uses" + mvcController -> fileStorage "writes to" "HTTPS" + + tenantClient -> tenantApi.tenantEndpoint "Calls" "HTTPS/json" + personClient -> personApi.personEndpoint "Calls" "HTTPS/json" + organisationClient -> organisationApi.organisationEndpoint "Calls" "HTTPS/json" + formsClient -> formsApi.formsEndpoint "Calls" "HTTPS/json" + dataSharingClient -> dataSharingApi.dataSharingEndpoint "Calls" "HTTPS/json" + entityVerificationClient -> entityVerification.entityVerificationEndpoint "Calls" "HTTPS/json" + + -> cdp.authority.openIdConfigurationEndpoint "Retrieves OpenID configuration from" + -> cdp.authority.openIdJwksConfigurationEndpoint "Retrieves Json Web Key Set from" + } } - personApi -> database "reads/writes" "SQL" - organisationApi -> database "reads/writes" "SQL" - formsApi -> database "reads/writes" "SQL" - dataSharingApi -> database "reads/writes" "SQL" - - tenantClient -> tenantEndpoint "Calls" "HTTPS/json" - personClient -> personEndpoint "Calls" "HTTPS/json" - organisationClient -> organisationEndpoint "Calls" "HTTPS/json" - formsClient -> formsEndpoint "Calls" "HTTPS/json" - dataSharingClient -> dataSharingEndpoint "Calls" "HTTPS/json" - eSender -> dataSharingEndpoint "Looks up supplier information" "HTTPS/json" + eSender -> dataSharingApi.dataSharingEndpoint "Looks up supplier information" "HTTPS/json" } buyer -> eSender "Uses" fts -> oneLogin "Authenticates with" - fts -> tokenEndpoint "Authorizes with" - fts -> openIdConfigurationEndpoint "Retrieves OpenID configuration from" - fts -> openIdJwksConfigurationEndpoint "Retrieves Json Web Key Set from" - webApp -> openIdConfigurationEndpoint "Retrieves OpenID configuration from" - webApp -> openIdJwksConfigurationEndpoint "Retrieves Json Web Key Set from" - cfs -> authority "Authorizes with" - ppg -> authority "Authorizes with" + fts -> cdp.authority.tokenEndpoint "Authenticates with" + fts -> cdp.authority.openIdConfigurationEndpoint "Retrieves OpenID configuration from" + fts -> cdp.authority.openIdJwksConfigurationEndpoint "Retrieves Json Web Key Set from" + fts -> cdp.organisationApi.organisationEndpoint "Calls" "HTTPS/json" + cfs -> cdp.authority "Authenticates with" + ppg -> cdp.authority "Authenticates with" } views { @@ -93,39 +130,49 @@ workspace "Central Digital Platform" { include * description "The container diagram for the Central Digital Platform." } - component authority "CDP-3-Authority-Components" { + component cdp.authority "CDP-3-Authority-Components" { include * description "The component diagram for the Authority service." } - component webApp "CDP-3-WebApp-Components" { + component cdp.webApp "CDP-3-WebApp-Components" { include * description "The component diagram for the Web Application." } - component tenantApi "CDP-4-TenantApi-Components" { + component cdp.tenantApi "CDP-4-TenantApi-Components" { include * description "The component diagram for the Tenant API." } - component personApi "CDP-5-PersonApi-Components" { + component cdp.personApi "CDP-5-PersonApi-Components" { include * description "The component diagram for the Person API." } - component organisationApi "CDP-6-OrganisationApi-Components" { + component cdp.organisationApi "CDP-6-OrganisationApi-Components" { include * description "The component diagram for the Organisation API." } - component formsApi "CDP-7-FormsApi-Components" { + component cdp.formsApi "CDP-7-FormsApi-Components" { include * description "The component diagram for the Forms API." } - component dataSharingApi "CDP-8-DataSharingApi-Components" { + component cdp.dataSharingApi "CDP-8-DataSharingApi-Components" { include * description "The component diagram for the Data Sharing API." } + component cdp.entityVerification "CDP-9-EntityVerification-Components" { + include * + description "The component diagram for the Entity Verification." + } theme default styles { element Database { shape Cylinder } + element "Message Queue" { + shape Pipe + } + element "File Storage" { + shape Folder + } element WebApp { shape WebBrowser } diff --git a/docs/diagrams/workspace.json b/docs/diagrams/workspace.json index 53a2d1f42..d3df767ab 100644 --- a/docs/diagrams/workspace.json +++ b/docs/diagrams/workspace.json @@ -5,7 +5,8 @@ "description" : "Description", "documentation" : { }, "id" : 1, - "lastModifiedDate" : "2024-06-06T11:24:12Z", + "lastModifiedAgent" : "structurizr-ui", + "lastModifiedDate" : "2024-10-02T13:32:10Z", "model" : { "people" : [ { "id" : "1", @@ -16,26 +17,26 @@ }, "relationships" : [ { "description" : "Uses", - "destinationId" : "34", - "id" : "40", + "destinationId" : "68", + "id" : "69", "properties" : { - "structurizr.dsl.identifier" : "aed0e8ba-d218-4d90-ad84-4f46eaf56f81" + "structurizr.dsl.identifier" : "e1cc0832-353f-477f-874d-b7723864b7e9" }, "sourceId" : "1", "tags" : "Relationship", "technology" : "HTTPS" }, { "description" : "Uses", - "destinationId" : "33", - "id" : "41", - "linkedRelationshipId" : "40", + "destinationId" : "61", + "id" : "70", + "linkedRelationshipId" : "69", "sourceId" : "1", "technology" : "HTTPS" }, { "description" : "Uses", - "destinationId" : "8", - "id" : "42", - "linkedRelationshipId" : "40", + "destinationId" : "10", + "id" : "71", + "linkedRelationshipId" : "69", "sourceId" : "1", "technology" : "HTTPS" } ], @@ -48,11 +49,35 @@ "structurizr.dsl.identifier" : "buyer" }, "relationships" : [ { + "description" : "Uses", + "destinationId" : "68", + "id" : "72", + "properties" : { + "structurizr.dsl.identifier" : "a8598355-a413-4858-a06d-c3ca23ff00d9" + }, + "sourceId" : "2", + "tags" : "Relationship", + "technology" : "HTTPS" + }, { + "description" : "Uses", + "destinationId" : "61", + "id" : "73", + "linkedRelationshipId" : "72", + "sourceId" : "2", + "technology" : "HTTPS" + }, { + "description" : "Uses", + "destinationId" : "10", + "id" : "74", + "linkedRelationshipId" : "72", + "sourceId" : "2", + "technology" : "HTTPS" + }, { "description" : "Uses", "destinationId" : "3", - "id" : "82", + "id" : "122", "properties" : { - "structurizr.dsl.identifier" : "540baa87-83cc-4826-b7eb-9d01f6dc299e" + "structurizr.dsl.identifier" : "7d21cd2d-1658-440c-bde3-a9312ec208a0" }, "sourceId" : "2", "tags" : "Relationship" @@ -70,26 +95,26 @@ }, "relationships" : [ { "description" : "Looks up supplier information", - "destinationId" : "29", - "id" : "79", + "destinationId" : "56", + "id" : "119", "properties" : { - "structurizr.dsl.identifier" : "556890f1-aa5e-4ea4-b662-efd311d94bec" + "structurizr.dsl.identifier" : "0dc12910-d79d-4fc2-be23-0289f884be35" }, "sourceId" : "3", "tags" : "Relationship", "technology" : "HTTPS/json" }, { "description" : "Looks up supplier information", - "destinationId" : "28", - "id" : "80", - "linkedRelationshipId" : "79", + "destinationId" : "55", + "id" : "120", + "linkedRelationshipId" : "119", "sourceId" : "3", "technology" : "HTTPS/json" }, { "description" : "Looks up supplier information", - "destinationId" : "8", - "id" : "81", - "linkedRelationshipId" : "79", + "destinationId" : "10", + "id" : "121", + "linkedRelationshipId" : "119", "sourceId" : "3", "technology" : "HTTPS/json" } ], @@ -105,9 +130,29 @@ }, "tags" : "Element,Software System" }, { + "description" : "Sends emails, text messages and letters", "documentation" : { }, "id" : "5", "location" : "Unspecified", + "name" : "Gov.uk Notify", + "properties" : { + "structurizr.dsl.identifier" : "govnotify" + }, + "tags" : "Element,Software System" + }, { + "description" : "Provides registered company details", + "documentation" : { }, + "id" : "6", + "location" : "Unspecified", + "name" : "Companies House", + "properties" : { + "structurizr.dsl.identifier" : "companieshouse" + }, + "tags" : "Element,Software System" + }, { + "documentation" : { }, + "id" : "7", + "location" : "Unspecified", "name" : "Find a Tender", "properties" : { "structurizr.dsl.identifier" : "fts" @@ -115,224 +160,350 @@ "relationships" : [ { "description" : "Authenticates with", "destinationId" : "4", - "id" : "83", + "id" : "123", "properties" : { - "structurizr.dsl.identifier" : "7d0b5c90-f7c7-4270-81ea-8d9ada9abb59" + "structurizr.dsl.identifier" : "ac5244f3-5a21-4222-8763-c4d1056dad4e" }, - "sourceId" : "5", + "sourceId" : "7", "tags" : "Relationship" }, { - "description" : "Authorizes with", - "destinationId" : "12", - "id" : "84", + "description" : "Authenticates with", + "destinationId" : "24", + "id" : "124", "properties" : { - "structurizr.dsl.identifier" : "6e245d2f-b5ba-4c95-95cc-6969fce06c76" + "structurizr.dsl.identifier" : "e99b18c6-8ad5-4bfc-9db3-d1cd8088188e" }, - "sourceId" : "5", + "sourceId" : "7", "tags" : "Relationship" }, { - "description" : "Authorizes with", - "destinationId" : "9", - "id" : "85", - "linkedRelationshipId" : "84", - "sourceId" : "5" + "description" : "Authenticates with", + "destinationId" : "21", + "id" : "125", + "linkedRelationshipId" : "124", + "sourceId" : "7" }, { - "description" : "Authorizes with", - "destinationId" : "8", - "id" : "86", - "linkedRelationshipId" : "84", - "sourceId" : "5" + "description" : "Authenticates with", + "destinationId" : "10", + "id" : "126", + "linkedRelationshipId" : "124", + "sourceId" : "7" }, { "description" : "Retrieves OpenID configuration from", - "destinationId" : "10", - "id" : "87", + "destinationId" : "22", + "id" : "127", "properties" : { - "structurizr.dsl.identifier" : "46257dda-51e3-4377-9dd1-aeb36772b733" + "structurizr.dsl.identifier" : "f4f4762a-d6a3-497e-9139-cc69f78bb47d" }, - "sourceId" : "5", + "sourceId" : "7", "tags" : "Relationship" }, { "description" : "Retrieves Json Web Key Set from", - "destinationId" : "11", - "id" : "88", + "destinationId" : "23", + "id" : "128", "properties" : { - "structurizr.dsl.identifier" : "dbaec6f8-50ce-4c22-a44a-fd8a6d39b6c1" + "structurizr.dsl.identifier" : "ced07fbc-aa0c-4d7d-bd2c-88a206c201b0" }, - "sourceId" : "5", + "sourceId" : "7", "tags" : "Relationship" + }, { + "description" : "Calls", + "destinationId" : "41", + "id" : "129", + "properties" : { + "structurizr.dsl.identifier" : "59b397e3-c85c-4a6f-bd99-d8a9248be30e" + }, + "sourceId" : "7", + "tags" : "Relationship", + "technology" : "HTTPS/json" + }, { + "description" : "Calls", + "destinationId" : "40", + "id" : "130", + "linkedRelationshipId" : "129", + "sourceId" : "7", + "technology" : "HTTPS/json" } ], "tags" : "Element,Software System" }, { "documentation" : { }, - "id" : "6", + "id" : "8", "location" : "Unspecified", "name" : "Supplier Information and Contracts Finder", "properties" : { "structurizr.dsl.identifier" : "cfs" }, "relationships" : [ { - "description" : "Authorizes with", - "destinationId" : "9", - "id" : "91", + "description" : "Authenticates with", + "destinationId" : "21", + "id" : "131", "properties" : { - "structurizr.dsl.identifier" : "f3ba282e-c603-4463-813f-3256a8059917" + "structurizr.dsl.identifier" : "d4992069-d456-48a4-b7f8-975ab391421a" }, - "sourceId" : "6", + "sourceId" : "8", "tags" : "Relationship" }, { - "description" : "Authorizes with", - "destinationId" : "8", - "id" : "92", - "linkedRelationshipId" : "91", - "sourceId" : "6" + "description" : "Authenticates with", + "destinationId" : "10", + "id" : "132", + "linkedRelationshipId" : "131", + "sourceId" : "8" } ], "tags" : "Element,Software System" }, { "documentation" : { }, - "id" : "7", + "id" : "9", "location" : "Unspecified", "name" : "Public Procurement Gateway", "properties" : { "structurizr.dsl.identifier" : "ppg" }, "relationships" : [ { - "description" : "Authorizes with", - "destinationId" : "9", - "id" : "93", + "description" : "Authenticates with", + "destinationId" : "21", + "id" : "133", "properties" : { - "structurizr.dsl.identifier" : "8169964c-920b-4bdf-9090-483856fa2eda" + "structurizr.dsl.identifier" : "e5ce2c0f-1c81-498a-88ff-ebcb40425812" }, - "sourceId" : "7", + "sourceId" : "9", "tags" : "Relationship" }, { - "description" : "Authorizes with", - "destinationId" : "8", - "id" : "94", - "linkedRelationshipId" : "93", - "sourceId" : "7" + "description" : "Authenticates with", + "destinationId" : "10", + "id" : "134", + "linkedRelationshipId" : "133", + "sourceId" : "9" } ], "tags" : "Element,Software System" }, { "containers" : [ { + "documentation" : { }, + "id" : "11", + "name" : "Message Queue", + "properties" : { + "structurizr.dsl.identifier" : "cdp.messagequeue" + }, + "tags" : "Element,Container,Message Queue", + "technology" : "SQS" + }, { + "documentation" : { }, + "group" : "Entity Verification", + "id" : "12", + "name" : "Entity Verification Database", + "properties" : { + "structurizr.dsl.identifier" : "cdp.entityverificationdatabase" + }, + "tags" : "Element,Container,Database", + "technology" : "PostgreSQL" + }, { + "components" : [ { + "description" : "Queries known identifers.", + "documentation" : { }, + "id" : "14", + "name" : "Entity Verification Endpoint", + "properties" : { + "structurizr.dsl.identifier" : "cdp.entityverification.entityverificationendpoint" + }, + "tags" : "Element,Component", + "technology" : "Asp.Net Core Web API" + }, { + "documentation" : { }, + "id" : "15", + "name" : "Use Case", + "properties" : { + "structurizr.dsl.identifier" : "cdp.entityverification.entityverificationusecase" + }, + "relationships" : [ { + "description" : "publishes to / listens to", + "destinationId" : "11", + "id" : "16", + "properties" : { + "structurizr.dsl.identifier" : "b39d6bc8-01e9-4f2e-bb4f-2d449400cec4" + }, + "sourceId" : "15", + "tags" : "Relationship", + "technology" : "HTTPS" + } ], + "tags" : "Element,Component" + } ], + "documentation" : { }, + "group" : "Entity Verification", + "id" : "13", + "name" : "Entity Verification", + "properties" : { + "structurizr.dsl.identifier" : "cdp.entityverification" + }, + "relationships" : [ { + "description" : "publishes to / listens to", + "destinationId" : "11", + "id" : "17", + "linkedRelationshipId" : "16", + "sourceId" : "13", + "technology" : "HTTPS" + }, { + "description" : "reads/writes", + "destinationId" : "12", + "id" : "18", + "properties" : { + "structurizr.dsl.identifier" : "5a303626-1bd2-461a-9a5d-fa94bf9296cd" + }, + "sourceId" : "13", + "tags" : "Relationship", + "technology" : "SQL" + } ], + "tags" : "Element,Container,WebApi", + "technology" : "Asp.Net Core" + }, { + "documentation" : { }, + "group" : "Organisation Information", + "id" : "19", + "name" : "Organisation Information Database", + "properties" : { + "structurizr.dsl.identifier" : "cdp.organisationinformationdatabase" + }, + "tags" : "Element,Container,Database", + "technology" : "PostgreSQL" + }, { + "documentation" : { }, + "group" : "Organisation Information", + "id" : "20", + "name" : "File Storage", + "properties" : { + "structurizr.dsl.identifier" : "cdp.filestorage" + }, + "tags" : "Element,Container,File Storage", + "technology" : "S3" + }, { "components" : [ { "description" : "Exposes OpenID configuration", "documentation" : { }, - "id" : "10", + "id" : "22", "name" : "OpenID Well-Known Configuration Endpoint", "properties" : { - "structurizr.dsl.identifier" : "openidconfigurationendpoint" + "structurizr.dsl.identifier" : "cdp.authority.openidconfigurationendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" }, { "description" : "Exposes Json Web Key Set", "documentation" : { }, - "id" : "11", + "id" : "23", "name" : "OpenID Well-Known JWKS Configuration Endpoint", "properties" : { - "structurizr.dsl.identifier" : "openidjwksconfigurationendpoint" + "structurizr.dsl.identifier" : "cdp.authority.openidjwksconfigurationendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" }, { "description" : "Exchanges a valid One Login token to a longer-lived token with additional claims.", "documentation" : { }, - "id" : "12", + "id" : "24", "name" : "Token endpoint", "properties" : { - "structurizr.dsl.identifier" : "tokenendpoint" + "structurizr.dsl.identifier" : "cdp.authority.tokenendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" } ], "documentation" : { }, - "id" : "9", + "group" : "Organisation Information", + "id" : "21", "name" : "Authority", "properties" : { - "structurizr.dsl.identifier" : "authority" + "structurizr.dsl.identifier" : "cdp.authority" }, + "relationships" : [ { + "description" : "reads/writes", + "destinationId" : "19", + "id" : "25", + "properties" : { + "structurizr.dsl.identifier" : "5161ab2d-0f48-4b98-b059-1408ebe8ee47" + }, + "sourceId" : "21", + "tags" : "Relationship", + "technology" : "SQL" + } ], "tags" : "Element,Container,WebApi", "technology" : "Asp.Net Core" }, { "components" : [ { "documentation" : { }, - "id" : "14", + "id" : "27", "name" : "Tenant Endpoint", "properties" : { - "structurizr.dsl.identifier" : "tenantendpoint" + "structurizr.dsl.identifier" : "cdp.tenantapi.tenantendpoint" }, "relationships" : [ { "description" : "Executes", - "destinationId" : "15", - "id" : "18", + "destinationId" : "28", + "id" : "31", "properties" : { - "structurizr.dsl.identifier" : "42cd5322-5e3f-4d07-8fa4-f8ccbb748afd" + "structurizr.dsl.identifier" : "4842ca8e-ac64-4322-85eb-ef93bae80519" }, - "sourceId" : "14", + "sourceId" : "27", "tags" : "Relationship" }, { "description" : "Executes", - "destinationId" : "16", - "id" : "19", + "destinationId" : "29", + "id" : "32", "properties" : { - "structurizr.dsl.identifier" : "e5a67029-c9e9-4ac4-b51e-9f86982aef27" + "structurizr.dsl.identifier" : "5606c05b-f66b-485b-ada4-3b195f4b323d" }, - "sourceId" : "14", + "sourceId" : "27", "tags" : "Relationship" } ], "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" }, { "documentation" : { }, - "id" : "15", + "id" : "28", "name" : "Register Tenant Use Case", "properties" : { - "structurizr.dsl.identifier" : "registertenantusecase" + "structurizr.dsl.identifier" : "cdp.tenantapi.registertenantusecase" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "17", - "id" : "20", + "destinationId" : "30", + "id" : "33", "properties" : { - "structurizr.dsl.identifier" : "1b24b1ad-e99c-403f-8baf-cc94b058a608" + "structurizr.dsl.identifier" : "d1cfc025-4a0a-4aa4-96d2-ad581f481df7" }, - "sourceId" : "15", + "sourceId" : "28", "tags" : "Relationship" } ], "tags" : "Element,Component" }, { "documentation" : { }, - "id" : "16", + "id" : "29", "name" : "Get Tenant Use Case", "properties" : { - "structurizr.dsl.identifier" : "gettenantusecase" + "structurizr.dsl.identifier" : "cdp.tenantapi.gettenantusecase" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "17", - "id" : "21", + "destinationId" : "30", + "id" : "34", "properties" : { - "structurizr.dsl.identifier" : "4453c877-0578-4b30-87bf-3eb26340c7fa" + "structurizr.dsl.identifier" : "1ec2979b-73e9-4f15-b614-50d397d7edf5" }, - "sourceId" : "16", + "sourceId" : "29", "tags" : "Relationship" } ], "tags" : "Element,Component" }, { "documentation" : { }, - "id" : "17", + "id" : "30", "name" : "Persistence", "properties" : { - "structurizr.dsl.identifier" : "tenantpersistence" + "structurizr.dsl.identifier" : "cdp.tenantapi.tenantpersistence" }, "relationships" : [ { "description" : "reads/writes", - "destinationId" : "30", - "id" : "31", + "destinationId" : "19", + "id" : "35", "properties" : { - "structurizr.dsl.identifier" : "04ff222d-fa22-48a8-94df-f0408e68b851" + "structurizr.dsl.identifier" : "6bdb358a-a227-4aae-9d69-6bf8fb7f5f84" }, - "sourceId" : "17", + "sourceId" : "30", "tags" : "Relationship", "technology" : "SQL" } ], @@ -340,17 +511,18 @@ "technology" : "Project" } ], "documentation" : { }, - "id" : "13", + "group" : "Organisation Information", + "id" : "26", "name" : "Tenant API", "properties" : { - "structurizr.dsl.identifier" : "tenantapi" + "structurizr.dsl.identifier" : "cdp.tenantapi" }, "relationships" : [ { "description" : "reads/writes", - "destinationId" : "30", - "id" : "32", - "linkedRelationshipId" : "31", - "sourceId" : "13", + "destinationId" : "19", + "id" : "36", + "linkedRelationshipId" : "35", + "sourceId" : "26", "technology" : "SQL" } ], "tags" : "Element,Container,WebApi", @@ -358,28 +530,29 @@ }, { "components" : [ { "documentation" : { }, - "id" : "23", + "id" : "38", "name" : "Person Endpoint", "properties" : { - "structurizr.dsl.identifier" : "personendpoint" + "structurizr.dsl.identifier" : "cdp.personapi.personendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" } ], "documentation" : { }, - "id" : "22", + "group" : "Organisation Information", + "id" : "37", "name" : "Person API", "properties" : { - "structurizr.dsl.identifier" : "personapi" + "structurizr.dsl.identifier" : "cdp.personapi" }, "relationships" : [ { "description" : "reads/writes", - "destinationId" : "30", - "id" : "55", + "destinationId" : "19", + "id" : "39", "properties" : { - "structurizr.dsl.identifier" : "eb2f2990-f2ea-4e35-8bb5-f5ba338c52e1" + "structurizr.dsl.identifier" : "5922eeb4-8432-44a4-82ab-bb3559787006" }, - "sourceId" : "22", + "sourceId" : "37", "tags" : "Relationship", "technology" : "SQL" } ], @@ -388,28 +561,72 @@ }, { "components" : [ { "documentation" : { }, - "id" : "25", + "id" : "41", "name" : "Organisation Endpoint", "properties" : { - "structurizr.dsl.identifier" : "organisationendpoint" + "structurizr.dsl.identifier" : "cdp.organisationapi.organisationendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" + }, { + "documentation" : { }, + "id" : "42", + "name" : "Use Case", + "properties" : { + "structurizr.dsl.identifier" : "cdp.organisationapi.usecase" + }, + "relationships" : [ { + "description" : "publishes to / listens to", + "destinationId" : "11", + "id" : "43", + "properties" : { + "structurizr.dsl.identifier" : "6d0ebdc5-a4d8-471a-bff8-b3b3988882d8" + }, + "sourceId" : "42", + "tags" : "Relationship", + "technology" : "HTTPS" + }, { + "description" : "sends notifications with", + "destinationId" : "5", + "id" : "45", + "properties" : { + "structurizr.dsl.identifier" : "ad49273b-ad09-4a09-a355-98e7b8d641e3" + }, + "sourceId" : "42", + "tags" : "Relationship", + "technology" : "HTTPS" + } ], + "tags" : "Element,Component" } ], "documentation" : { }, - "id" : "24", + "group" : "Organisation Information", + "id" : "40", "name" : "Organisation API", "properties" : { - "structurizr.dsl.identifier" : "organisationapi" + "structurizr.dsl.identifier" : "cdp.organisationapi" }, "relationships" : [ { + "description" : "publishes to / listens to", + "destinationId" : "11", + "id" : "44", + "linkedRelationshipId" : "43", + "sourceId" : "40", + "technology" : "HTTPS" + }, { + "description" : "sends notifications with", + "destinationId" : "5", + "id" : "46", + "linkedRelationshipId" : "45", + "sourceId" : "40", + "technology" : "HTTPS" + }, { "description" : "reads/writes", - "destinationId" : "30", - "id" : "56", + "destinationId" : "19", + "id" : "48", "properties" : { - "structurizr.dsl.identifier" : "a5d43f48-121d-4b10-aef2-78886fe596cb" + "structurizr.dsl.identifier" : "6789dadb-e82e-40a1-bfaa-e35973d557b4" }, - "sourceId" : "24", + "sourceId" : "40", "tags" : "Relationship", "technology" : "SQL" } ], @@ -418,28 +635,55 @@ }, { "components" : [ { "documentation" : { }, - "id" : "27", + "id" : "50", "name" : "Forms Endpoint", "properties" : { - "structurizr.dsl.identifier" : "formsendpoint" + "structurizr.dsl.identifier" : "cdp.formsapi.formsendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" + }, { + "documentation" : { }, + "id" : "51", + "name" : "Use Case", + "properties" : { + "structurizr.dsl.identifier" : "cdp.formsapi.usecase" + }, + "relationships" : [ { + "description" : "writes to", + "destinationId" : "20", + "id" : "52", + "properties" : { + "structurizr.dsl.identifier" : "7aefd0c2-43bc-4728-b3b2-17b5010bdd86" + }, + "sourceId" : "51", + "tags" : "Relationship", + "technology" : "HTTPS" + } ], + "tags" : "Element,Component" } ], "documentation" : { }, - "id" : "26", + "group" : "Organisation Information", + "id" : "49", "name" : "Forms API", "properties" : { - "structurizr.dsl.identifier" : "formsapi" + "structurizr.dsl.identifier" : "cdp.formsapi" }, "relationships" : [ { + "description" : "writes to", + "destinationId" : "20", + "id" : "53", + "linkedRelationshipId" : "52", + "sourceId" : "49", + "technology" : "HTTPS" + }, { "description" : "reads/writes", - "destinationId" : "30", - "id" : "57", + "destinationId" : "19", + "id" : "54", "properties" : { - "structurizr.dsl.identifier" : "7b5430e3-f102-47f1-922c-bae87fded64d" + "structurizr.dsl.identifier" : "494ab583-7e7e-48cc-88d0-44c20ccd666c" }, - "sourceId" : "26", + "sourceId" : "49", "tags" : "Relationship", "technology" : "SQL" } ], @@ -448,382 +692,492 @@ }, { "components" : [ { "documentation" : { }, - "id" : "29", + "id" : "56", "name" : "Data Sharing Endpoint", "properties" : { - "structurizr.dsl.identifier" : "datasharingendpoint" + "structurizr.dsl.identifier" : "cdp.datasharingapi.datasharingendpoint" }, "tags" : "Element,Component", "technology" : "Asp.Net Core Web API" + }, { + "documentation" : { }, + "id" : "57", + "name" : "Use Case", + "properties" : { + "structurizr.dsl.identifier" : "cdp.datasharingapi.usecase" + }, + "relationships" : [ { + "description" : "writes to / reads from", + "destinationId" : "20", + "id" : "58", + "properties" : { + "structurizr.dsl.identifier" : "0c73bf04-027f-44b6-80ad-ddc11c2df853" + }, + "sourceId" : "57", + "tags" : "Relationship", + "technology" : "HTTPS" + } ], + "tags" : "Element,Component" } ], "documentation" : { }, - "id" : "28", + "group" : "Organisation Information", + "id" : "55", "name" : "Data Sharing API", "properties" : { - "structurizr.dsl.identifier" : "datasharingapi" + "structurizr.dsl.identifier" : "cdp.datasharingapi" }, "relationships" : [ { + "description" : "writes to / reads from", + "destinationId" : "20", + "id" : "59", + "linkedRelationshipId" : "58", + "sourceId" : "55", + "technology" : "HTTPS" + }, { "description" : "reads/writes", - "destinationId" : "30", - "id" : "58", + "destinationId" : "19", + "id" : "60", "properties" : { - "structurizr.dsl.identifier" : "aa045b4c-0005-4735-a1a2-dcd70630bdfd" + "structurizr.dsl.identifier" : "2aaae187-ea95-4346-8bcc-1fedcf204db7" }, - "sourceId" : "28", + "sourceId" : "55", "tags" : "Relationship", "technology" : "SQL" } ], "tags" : "Element,Container,WebApi", "technology" : "Asp.Net Core" - }, { - "documentation" : { }, - "id" : "30", - "name" : "Organisation Information Database", - "properties" : { - "structurizr.dsl.identifier" : "database" - }, - "tags" : "Element,Container,Database", - "technology" : "PostgreSQL" }, { "components" : [ { - "description" : "Enables web users to perform tasks.", + "description" : "Makes API calls to the Tenant API", "documentation" : { }, - "id" : "34", - "name" : "MVC Controller", + "group" : "Libraries", + "id" : "62", + "name" : "Tenant Client", "properties" : { - "structurizr.dsl.identifier" : "mvccontroller" + "structurizr.dsl.identifier" : "cdp.webapp.tenantclient" }, "relationships" : [ { - "description" : "Authenticates with", - "destinationId" : "4", - "id" : "43", + "description" : "Calls", + "destinationId" : "27", + "id" : "93", "properties" : { - "structurizr.dsl.identifier" : "68b59b51-c29a-48fd-a0f1-6f8d466ca749" + "structurizr.dsl.identifier" : "5965c60f-5cd6-4f2b-b2e0-a2d0c1ed50e3" }, - "sourceId" : "34", + "sourceId" : "62", "tags" : "Relationship", - "technology" : "HTTPS" + "technology" : "HTTPS/json" }, { - "description" : "Authenticates and authorises with", - "destinationId" : "12", - "id" : "46", + "description" : "Calls", + "destinationId" : "26", + "id" : "94", + "linkedRelationshipId" : "93", + "sourceId" : "62", + "technology" : "HTTPS/json" + } ], + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" + }, { + "description" : "Makes API calls to the Person API", + "documentation" : { }, + "group" : "Libraries", + "id" : "63", + "name" : "Person Client", + "properties" : { + "structurizr.dsl.identifier" : "cdp.webapp.personclient" + }, + "relationships" : [ { + "description" : "Calls", + "destinationId" : "38", + "id" : "97", "properties" : { - "structurizr.dsl.identifier" : "f2e62d5a-5ab6-4609-87b2-0725d07cc2ad" + "structurizr.dsl.identifier" : "c146fb9f-7d84-40f1-8942-3a365dd66292" }, - "sourceId" : "34", + "sourceId" : "63", "tags" : "Relationship", - "technology" : "HTTPS" - }, { - "description" : "Authenticates and authorises with", - "destinationId" : "9", - "id" : "47", - "linkedRelationshipId" : "46", - "sourceId" : "34", - "technology" : "HTTPS" - }, { - "description" : "Uses", - "destinationId" : "35", - "id" : "50", - "properties" : { - "structurizr.dsl.identifier" : "e1468086-bdb8-4ca9-a90d-eda4fee755cf" - }, - "sourceId" : "34", - "tags" : "Relationship" - }, { - "description" : "Uses", - "destinationId" : "36", - "id" : "51", - "properties" : { - "structurizr.dsl.identifier" : "d601485c-31ae-49d8-8482-f65acd678992" - }, - "sourceId" : "34", - "tags" : "Relationship" + "technology" : "HTTPS/json" }, { - "description" : "Uses", + "description" : "Calls", "destinationId" : "37", - "id" : "52", - "properties" : { - "structurizr.dsl.identifier" : "1b274eae-c1b1-4a35-b72c-9f810dd9c8e8" - }, - "sourceId" : "34", - "tags" : "Relationship" - }, { - "description" : "Uses", - "destinationId" : "38", - "id" : "53", - "properties" : { - "structurizr.dsl.identifier" : "7ddd3462-551a-4314-8f6e-8cbf375932eb" - }, - "sourceId" : "34", - "tags" : "Relationship" - }, { - "description" : "Uses", - "destinationId" : "39", - "id" : "54", - "properties" : { - "structurizr.dsl.identifier" : "1eda0158-99b2-49ea-9030-a514eda06f57" - }, - "sourceId" : "34", - "tags" : "Relationship" + "id" : "98", + "linkedRelationshipId" : "97", + "sourceId" : "63", + "technology" : "HTTPS/json" } ], - "tags" : "Element,Component", - "technology" : "Asp.Net Core MVC Controller" + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" }, { - "description" : "Makes API calls to the Tenant API", + "description" : "Makes API calls to the Organisation API", "documentation" : { }, - "id" : "35", - "name" : "Tenant Client", + "group" : "Libraries", + "id" : "64", + "name" : "Organisation Client", "properties" : { - "structurizr.dsl.identifier" : "tenantclient" + "structurizr.dsl.identifier" : "cdp.webapp.organisationclient" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "14", - "id" : "59", + "destinationId" : "41", + "id" : "101", "properties" : { - "structurizr.dsl.identifier" : "3c6f3ad3-2cb6-4879-b356-1b0681c8ad62" + "structurizr.dsl.identifier" : "fe2fccdc-a01f-4d5e-aedc-f7fb28c80b6f" }, - "sourceId" : "35", + "sourceId" : "64", "tags" : "Relationship", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "13", - "id" : "60", - "linkedRelationshipId" : "59", - "sourceId" : "35", + "destinationId" : "40", + "id" : "102", + "linkedRelationshipId" : "101", + "sourceId" : "64", "technology" : "HTTPS/json" } ], - "tags" : "Element,Component", - "technology" : "library" + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" }, { - "description" : "Makes API calls to the Person API", + "description" : "Makes API calls to the Forms API", "documentation" : { }, - "id" : "36", - "name" : "Person Client", + "group" : "Libraries", + "id" : "65", + "name" : "Forms Client", "properties" : { - "structurizr.dsl.identifier" : "personclient" + "structurizr.dsl.identifier" : "cdp.webapp.formsclient" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "23", - "id" : "63", + "destinationId" : "50", + "id" : "105", "properties" : { - "structurizr.dsl.identifier" : "5ab4fdcd-e3bd-419a-bc9e-7c8551831d4d" + "structurizr.dsl.identifier" : "fa9c4ca8-11ab-4acc-9175-64451c202026" }, - "sourceId" : "36", + "sourceId" : "65", "tags" : "Relationship", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "22", - "id" : "64", - "linkedRelationshipId" : "63", - "sourceId" : "36", + "destinationId" : "49", + "id" : "106", + "linkedRelationshipId" : "105", + "sourceId" : "65", "technology" : "HTTPS/json" } ], - "tags" : "Element,Component", - "technology" : "library" + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" }, { - "description" : "Makes API calls to the Organisation API", + "description" : "Makes API calls to the Data Sharing API", "documentation" : { }, - "id" : "37", - "name" : "Organisation Client", + "group" : "Libraries", + "id" : "66", + "name" : "Data Sharing Client", "properties" : { - "structurizr.dsl.identifier" : "organisationclient" + "structurizr.dsl.identifier" : "cdp.webapp.datasharingclient" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "25", - "id" : "67", + "destinationId" : "56", + "id" : "109", "properties" : { - "structurizr.dsl.identifier" : "607f8b6c-9910-461d-ba35-937b4227b906" + "structurizr.dsl.identifier" : "a46e24f7-6008-459a-997b-016b15b44627" }, - "sourceId" : "37", + "sourceId" : "66", "tags" : "Relationship", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "24", - "id" : "68", - "linkedRelationshipId" : "67", - "sourceId" : "37", + "destinationId" : "55", + "id" : "110", + "linkedRelationshipId" : "109", + "sourceId" : "66", "technology" : "HTTPS/json" } ], - "tags" : "Element,Component", - "technology" : "library" + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" }, { - "description" : "Makes API calls to the Forms API", + "description" : "Makes API calls to the Entity Verification API", "documentation" : { }, - "id" : "38", - "name" : "Forms Client", + "group" : "Libraries", + "id" : "67", + "name" : "Entity Verification Client", "properties" : { - "structurizr.dsl.identifier" : "formsclient" + "structurizr.dsl.identifier" : "cdp.webapp.entityverificationclient" }, "relationships" : [ { "description" : "Calls", - "destinationId" : "27", - "id" : "71", + "destinationId" : "14", + "id" : "113", "properties" : { - "structurizr.dsl.identifier" : "2b36de4e-6744-4bb5-aa8e-e0dda82e506b" + "structurizr.dsl.identifier" : "f6b8d584-398d-41ec-a6ee-7d8463da5fda" }, - "sourceId" : "38", + "sourceId" : "67", "tags" : "Relationship", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "26", - "id" : "72", - "linkedRelationshipId" : "71", - "sourceId" : "38", + "destinationId" : "13", + "id" : "114", + "linkedRelationshipId" : "113", + "sourceId" : "67", "technology" : "HTTPS/json" } ], - "tags" : "Element,Component", - "technology" : "library" + "tags" : "Element,Component,Shared Component", + "technology" : "C# project" }, { - "description" : "Makes API calls to the Data Sharing API", + "description" : "Enables web users to perform tasks.", "documentation" : { }, - "id" : "39", - "name" : "Data Sharing Client", + "id" : "68", + "name" : "MVC Controller", "properties" : { - "structurizr.dsl.identifier" : "datasharingclient" + "structurizr.dsl.identifier" : "cdp.webapp.mvccontroller" }, "relationships" : [ { - "description" : "Calls", - "destinationId" : "29", + "description" : "Authenticates with", + "destinationId" : "4", "id" : "75", "properties" : { - "structurizr.dsl.identifier" : "a1fc17e5-0b7a-4efc-86bc-32d1e61e7bb1" + "structurizr.dsl.identifier" : "59c8a693-9961-4ea0-b892-9fe4eb1f1592" }, - "sourceId" : "39", + "sourceId" : "68", "tags" : "Relationship", - "technology" : "HTTPS/json" + "technology" : "HTTPS" }, { - "description" : "Calls", - "destinationId" : "28", - "id" : "76", - "linkedRelationshipId" : "75", - "sourceId" : "39", - "technology" : "HTTPS/json" + "description" : "Pulls company details from", + "destinationId" : "6", + "id" : "78", + "properties" : { + "structurizr.dsl.identifier" : "d94c18bd-b3a5-4f1e-aacf-a76274356129" + }, + "sourceId" : "68", + "tags" : "Relationship", + "technology" : "HTTPS" + }, { + "description" : "Authenticates and authorises with", + "destinationId" : "24", + "id" : "81", + "properties" : { + "structurizr.dsl.identifier" : "6f6c0329-ff39-4a33-bbe5-835a7ed7005d" + }, + "sourceId" : "68", + "tags" : "Relationship", + "technology" : "HTTPS" + }, { + "description" : "Authenticates and authorises with", + "destinationId" : "21", + "id" : "82", + "linkedRelationshipId" : "81", + "sourceId" : "68", + "technology" : "HTTPS" + }, { + "description" : "Uses", + "destinationId" : "62", + "id" : "85", + "properties" : { + "structurizr.dsl.identifier" : "99f7b9c9-d8c3-4b5c-a795-759ee864898a" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "Uses", + "destinationId" : "63", + "id" : "86", + "properties" : { + "structurizr.dsl.identifier" : "8d78cbd3-2e06-41f8-b2ef-cbb2facbfe0a" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "Uses", + "destinationId" : "64", + "id" : "87", + "properties" : { + "structurizr.dsl.identifier" : "190d50a2-3c50-4357-8d00-042ccc8fb544" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "Uses", + "destinationId" : "65", + "id" : "88", + "properties" : { + "structurizr.dsl.identifier" : "4cbdb012-1070-499d-9e3b-6a4829feab63" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "Uses", + "destinationId" : "66", + "id" : "89", + "properties" : { + "structurizr.dsl.identifier" : "65e193f9-3f7b-4f84-9084-ca10755dd27e" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "Uses", + "destinationId" : "67", + "id" : "90", + "properties" : { + "structurizr.dsl.identifier" : "bc92a39e-e6d1-4557-bd4b-818d33a9379e" + }, + "sourceId" : "68", + "tags" : "Relationship" + }, { + "description" : "writes to", + "destinationId" : "20", + "id" : "91", + "properties" : { + "structurizr.dsl.identifier" : "a655bd6a-e21b-4406-bf31-7558ca337543" + }, + "sourceId" : "68", + "tags" : "Relationship", + "technology" : "HTTPS" } ], "tags" : "Element,Component", - "technology" : "library" + "technology" : "Asp.Net Core MVC Controller" } ], "description" : "Account & data capture frontend", "documentation" : { }, - "id" : "33", + "group" : "Organisation Information", + "id" : "61", "name" : "Web Application", "properties" : { - "structurizr.dsl.identifier" : "webapp" + "structurizr.dsl.identifier" : "cdp.webapp" }, "relationships" : [ { "description" : "Authenticates with", "destinationId" : "4", - "id" : "44", - "linkedRelationshipId" : "43", - "sourceId" : "33", + "id" : "76", + "linkedRelationshipId" : "75", + "sourceId" : "61", + "technology" : "HTTPS" + }, { + "description" : "Pulls company details from", + "destinationId" : "6", + "id" : "79", + "linkedRelationshipId" : "78", + "sourceId" : "61", + "technology" : "HTTPS" + }, { + "description" : "Authenticates and authorises with", + "destinationId" : "24", + "id" : "83", + "linkedRelationshipId" : "81", + "sourceId" : "61", "technology" : "HTTPS" }, { "description" : "Authenticates and authorises with", - "destinationId" : "12", - "id" : "48", - "linkedRelationshipId" : "46", - "sourceId" : "33", + "destinationId" : "21", + "id" : "84", + "linkedRelationshipId" : "81", + "sourceId" : "61", "technology" : "HTTPS" }, { - "description" : "Authenticates and authorises with", - "destinationId" : "9", - "id" : "49", - "linkedRelationshipId" : "46", - "sourceId" : "33", + "description" : "writes to", + "destinationId" : "20", + "id" : "92", + "linkedRelationshipId" : "91", + "sourceId" : "61", "technology" : "HTTPS" }, { "description" : "Calls", - "destinationId" : "14", - "id" : "61", - "linkedRelationshipId" : "59", - "sourceId" : "33", + "destinationId" : "27", + "id" : "95", + "linkedRelationshipId" : "93", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "13", - "id" : "62", - "linkedRelationshipId" : "59", - "sourceId" : "33", + "destinationId" : "26", + "id" : "96", + "linkedRelationshipId" : "93", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "23", - "id" : "65", - "linkedRelationshipId" : "63", - "sourceId" : "33", + "destinationId" : "38", + "id" : "99", + "linkedRelationshipId" : "97", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "22", - "id" : "66", - "linkedRelationshipId" : "63", - "sourceId" : "33", + "destinationId" : "37", + "id" : "100", + "linkedRelationshipId" : "97", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "25", - "id" : "69", - "linkedRelationshipId" : "67", - "sourceId" : "33", + "destinationId" : "41", + "id" : "103", + "linkedRelationshipId" : "101", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "24", - "id" : "70", - "linkedRelationshipId" : "67", - "sourceId" : "33", + "destinationId" : "40", + "id" : "104", + "linkedRelationshipId" : "101", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "27", - "id" : "73", - "linkedRelationshipId" : "71", - "sourceId" : "33", + "destinationId" : "50", + "id" : "107", + "linkedRelationshipId" : "105", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "26", - "id" : "74", - "linkedRelationshipId" : "71", - "sourceId" : "33", + "destinationId" : "49", + "id" : "108", + "linkedRelationshipId" : "105", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "29", - "id" : "77", - "linkedRelationshipId" : "75", - "sourceId" : "33", + "destinationId" : "56", + "id" : "111", + "linkedRelationshipId" : "109", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Calls", - "destinationId" : "28", - "id" : "78", - "linkedRelationshipId" : "75", - "sourceId" : "33", + "destinationId" : "55", + "id" : "112", + "linkedRelationshipId" : "109", + "sourceId" : "61", + "technology" : "HTTPS/json" + }, { + "description" : "Calls", + "destinationId" : "14", + "id" : "115", + "linkedRelationshipId" : "113", + "sourceId" : "61", + "technology" : "HTTPS/json" + }, { + "description" : "Calls", + "destinationId" : "13", + "id" : "116", + "linkedRelationshipId" : "113", + "sourceId" : "61", "technology" : "HTTPS/json" }, { "description" : "Retrieves OpenID configuration from", - "destinationId" : "10", - "id" : "89", + "destinationId" : "22", + "id" : "117", "properties" : { - "structurizr.dsl.identifier" : "47719f24-0734-4fb6-8a0c-f16b1594e864" + "structurizr.dsl.identifier" : "b4ac56d2-405e-4814-ac76-f9a26a9a928b" }, - "sourceId" : "33", + "sourceId" : "61", "tags" : "Relationship" }, { "description" : "Retrieves Json Web Key Set from", - "destinationId" : "11", - "id" : "90", + "destinationId" : "23", + "id" : "118", "properties" : { - "structurizr.dsl.identifier" : "faf594ab-d55d-4ca2-adf3-d339c6802e14" + "structurizr.dsl.identifier" : "2a4ac1e1-8047-49e3-a759-b893c60db009" }, - "sourceId" : "33", + "sourceId" : "61", "tags" : "Relationship" } ], "tags" : "Element,Container,WebApp", @@ -831,18 +1185,32 @@ } ], "description" : "Supports procurement", "documentation" : { }, - "id" : "8", + "id" : "10", "location" : "Unspecified", "name" : "Central Digital Platform", "properties" : { "structurizr.dsl.identifier" : "cdp" }, "relationships" : [ { + "description" : "sends notifications with", + "destinationId" : "5", + "id" : "47", + "linkedRelationshipId" : "45", + "sourceId" : "10", + "technology" : "HTTPS" + }, { "description" : "Authenticates with", "destinationId" : "4", - "id" : "45", - "linkedRelationshipId" : "43", - "sourceId" : "8", + "id" : "77", + "linkedRelationshipId" : "75", + "sourceId" : "10", + "technology" : "HTTPS" + }, { + "description" : "Pulls company details from", + "destinationId" : "6", + "id" : "80", + "linkedRelationshipId" : "78", + "sourceId" : "10", "technology" : "HTTPS" } ], "tags" : "Element,Software System" @@ -850,34 +1218,34 @@ }, "name" : "Central Digital Platform", "properties" : { - "structurizr.dsl" : "d29ya3NwYWNlICJDZW50cmFsIERpZ2l0YWwgUGxhdGZvcm0iIHsKCiAgICBtb2RlbCB7CiAgICAgICAgc3VwcGxpZXIgPSBwZXJzb24gIlN1cHBsaWVyIgogICAgICAgIGJ1eWVyID0gcGVyc29uICJCdXllciIKICAgICAgICBlU2VuZGVyID0gc29mdHdhcmVTeXN0ZW0gImVTZW5kZXIiICJDb21tZXJjaWFsIFNvZnR3YXJlIHRoYXQgQnV5ZXJzIHVzZSB0byBtYW5hZ2UgdGVuZGVyIHByb2Nlc3NlcyIKICAgICAgICBvbmVMb2dpbiA9IHNvZnR3YXJlU3lzdGVtICJHb3YudWsgT25lIExvZ2luIiAiTGV0IHVzZXJzIHNpZ24gaW4gYW5kIHByb3ZlIHRoZWlyIGlkZW50aXRpZXMgdG8gdXNlIHlvdXIgc2VydmljZSIKICAgICAgICBmdHMgPSBzb2Z0d2FyZVN5c3RlbSAiRmluZCBhIFRlbmRlciIKICAgICAgICBjZnMgPSBzb2Z0d2FyZVN5c3RlbSAiU3VwcGxpZXIgSW5mb3JtYXRpb24gYW5kIENvbnRyYWN0cyBGaW5kZXIiCiAgICAgICAgcHBnID0gc29mdHdhcmVTeXN0ZW0gIlB1YmxpYyBQcm9jdXJlbWVudCBHYXRld2F5IgogICAgICAgIGNkcCA9IHNvZnR3YXJlU3lzdGVtICJDZW50cmFsIERpZ2l0YWwgUGxhdGZvcm0iICJTdXBwb3J0cyBwcm9jdXJlbWVudCIgewogICAgICAgICAgICBhdXRob3JpdHkgPSBjb250YWluZXIgIkF1dGhvcml0eSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgIG9wZW5JZENvbmZpZ3VyYXRpb25FbmRwb2ludCA9IGNvbXBvbmVudCAiT3BlbklEIFdlbGwtS25vd24gQ29uZmlndXJhdGlvbiBFbmRwb2ludCIgIkV4cG9zZXMgT3BlbklEIGNvbmZpZ3VyYXRpb24iICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgICAgIG9wZW5JZEp3a3NDb25maWd1cmF0aW9uRW5kcG9pbnQgPSBjb21wb25lbnQgIk9wZW5JRCBXZWxsLUtub3duIEpXS1MgQ29uZmlndXJhdGlvbiBFbmRwb2ludCIgIkV4cG9zZXMgSnNvbiBXZWIgS2V5IFNldCIgIkFzcC5OZXQgQ29yZSBXZWIgQVBJIgogICAgICAgICAgICAgICAgdG9rZW5FbmRwb2ludCA9IGNvbXBvbmVudCAiVG9rZW4gZW5kcG9pbnQiICJFeGNoYW5nZXMgYSB2YWxpZCBPbmUgTG9naW4gdG9rZW4gdG8gYSBsb25nZXItbGl2ZWQgdG9rZW4gd2l0aCBhZGRpdGlvbmFsIGNsYWltcy4iICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgfQogICAgICAgICAgICB0ZW5hbnRBcGkgPSBjb250YWluZXIgIlRlbmFudCBBUEkiICIiICJBc3AuTmV0IENvcmUiIFdlYkFwaSB7CiAgICAgICAgICAgICAgICB0ZW5hbnRFbmRwb2ludCA9IGNvbXBvbmVudCAiVGVuYW50IEVuZHBvaW50IiAiIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgICAgICByZWdpc3RlclRlbmFudFVzZUNhc2UgPSBjb21wb25lbnQgIlJlZ2lzdGVyIFRlbmFudCBVc2UgQ2FzZSIKICAgICAgICAgICAgICAgIGdldFRlbmFudFVzZUNhc2UgPSBjb21wb25lbnQgIkdldCBUZW5hbnQgVXNlIENhc2UiCiAgICAgICAgICAgICAgICB0ZW5hbnRQZXJzaXN0ZW5jZSA9IGNvbXBvbmVudCAiUGVyc2lzdGVuY2UiICIiICJQcm9qZWN0IgogICAgICAgICAgICAgICAgdGVuYW50RW5kcG9pbnQgLT4gcmVnaXN0ZXJUZW5hbnRVc2VDYXNlICJFeGVjdXRlcyIKICAgICAgICAgICAgICAgIHRlbmFudEVuZHBvaW50IC0+IGdldFRlbmFudFVzZUNhc2UgIkV4ZWN1dGVzIgogICAgICAgICAgICAgICAgcmVnaXN0ZXJUZW5hbnRVc2VDYXNlIC0+IHRlbmFudFBlcnNpc3RlbmNlICJDYWxscyIKICAgICAgICAgICAgICAgIGdldFRlbmFudFVzZUNhc2UgLT4gdGVuYW50UGVyc2lzdGVuY2UgIkNhbGxzIgogICAgICAgICAgICB9CiAgICAgICAgICAgIHBlcnNvbkFwaSA9IGNvbnRhaW5lciAiUGVyc29uIEFQSSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgIHBlcnNvbkVuZHBvaW50ID0gY29tcG9uZW50ICJQZXJzb24gRW5kcG9pbnQiICIiICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgfQogICAgICAgICAgICBvcmdhbmlzYXRpb25BcGkgPSBjb250YWluZXIgIk9yZ2FuaXNhdGlvbiBBUEkiICIiICJBc3AuTmV0IENvcmUiIFdlYkFwaSB7CiAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25FbmRwb2ludCA9IGNvbXBvbmVudCAiT3JnYW5pc2F0aW9uIEVuZHBvaW50IiAiIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9ybXNBcGkgPSBjb250YWluZXIgIkZvcm1zIEFQSSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgIGZvcm1zRW5kcG9pbnQgPSBjb21wb25lbnQgIkZvcm1zIEVuZHBvaW50IiAiIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVNoYXJpbmdBcGkgPSBjb250YWluZXIgIkRhdGEgU2hhcmluZyBBUEkiICIiICJBc3AuTmV0IENvcmUiIFdlYkFwaSB7CiAgICAgICAgICAgICAgICBkYXRhU2hhcmluZ0VuZHBvaW50ID0gY29tcG9uZW50ICJEYXRhIFNoYXJpbmcgRW5kcG9pbnQiICIiICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhYmFzZSA9IGNvbnRhaW5lciAiT3JnYW5pc2F0aW9uIEluZm9ybWF0aW9uIERhdGFiYXNlIiAiIiBQb3N0Z3JlU1FMIERhdGFiYXNlIHsKICAgICAgICAgICAgICAgIHRlbmFudFBlcnNpc3RlbmNlIC0+IGRhdGFiYXNlICJyZWFkcy93cml0ZXMiICJTUUwiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2ViQXBwID0gY29udGFpbmVyICJXZWIgQXBwbGljYXRpb24iICJBY2NvdW50ICYgZGF0YSBjYXB0dXJlIGZyb250ZW5kIiAiQXNwLk5ldCBDb3JlIE1WQyIgV2ViQXBwIHsKICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgPSBjb21wb25lbnQgIk1WQyBDb250cm9sbGVyIiAiRW5hYmxlcyB3ZWIgdXNlcnMgdG8gcGVyZm9ybSB0YXNrcy4iICJBc3AuTmV0IENvcmUgTVZDIENvbnRyb2xsZXIiCgogICAgICAgICAgICAgICAgdGVuYW50Q2xpZW50ID0gY29tcG9uZW50ICJUZW5hbnQgQ2xpZW50IiAiTWFrZXMgQVBJIGNhbGxzIHRvIHRoZSBUZW5hbnQgQVBJIiAibGlicmFyeSIKICAgICAgICAgICAgICAgIHBlcnNvbkNsaWVudCA9IGNvbXBvbmVudCAiUGVyc29uIENsaWVudCIgIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgUGVyc29uIEFQSSIgImxpYnJhcnkiCiAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25DbGllbnQgPSBjb21wb25lbnQgIk9yZ2FuaXNhdGlvbiBDbGllbnQiICJNYWtlcyBBUEkgY2FsbHMgdG8gdGhlIE9yZ2FuaXNhdGlvbiBBUEkiICJsaWJyYXJ5IgogICAgICAgICAgICAgICAgZm9ybXNDbGllbnQgPSBjb21wb25lbnQgIkZvcm1zIENsaWVudCIgIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgRm9ybXMgQVBJIiAibGlicmFyeSIKICAgICAgICAgICAgICAgIGRhdGFTaGFyaW5nQ2xpZW50ID0gY29tcG9uZW50ICJEYXRhIFNoYXJpbmcgQ2xpZW50IiAiTWFrZXMgQVBJIGNhbGxzIHRvIHRoZSBEYXRhIFNoYXJpbmcgQVBJIiAibGlicmFyeSIKCiAgICAgICAgICAgICAgICBzdXBwbGllciAtPiBtdmNDb250cm9sbGVyICJVc2VzIiAiSFRUUFMiCgogICAgICAgICAgICAgICAgbXZjQ29udHJvbGxlciAtPiBvbmVMb2dpbiAiQXV0aGVudGljYXRlcyB3aXRoIiAiSFRUUFMiCiAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IHRva2VuRW5kcG9pbnQgIkF1dGhlbnRpY2F0ZXMgYW5kIGF1dGhvcmlzZXMgd2l0aCIgIkhUVFBTIgogICAgICAgICAgICAgICAgbXZjQ29udHJvbGxlciAtPiB0ZW5hbnRDbGllbnQgIlVzZXMiCiAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IHBlcnNvbkNsaWVudCAiVXNlcyIKICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gb3JnYW5pc2F0aW9uQ2xpZW50ICJVc2VzIgogICAgICAgICAgICAgICAgbXZjQ29udHJvbGxlciAtPiBmb3Jtc0NsaWVudCAiVXNlcyIKICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gZGF0YVNoYXJpbmdDbGllbnQgIlVzZXMiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHBlcnNvbkFwaSAtPiBkYXRhYmFzZSAicmVhZHMvd3JpdGVzIiAiU1FMIgogICAgICAgICAgICBvcmdhbmlzYXRpb25BcGkgLT4gZGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKICAgICAgICAgICAgZm9ybXNBcGkgLT4gZGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKICAgICAgICAgICAgZGF0YVNoYXJpbmdBcGkgLT4gZGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKCiAgICAgICAgICAgIHRlbmFudENsaWVudCAtPiB0ZW5hbnRFbmRwb2ludCAiQ2FsbHMiICJIVFRQUy9qc29uIgogICAgICAgICAgICBwZXJzb25DbGllbnQgLT4gcGVyc29uRW5kcG9pbnQgIkNhbGxzIiAiSFRUUFMvanNvbiIKICAgICAgICAgICAgb3JnYW5pc2F0aW9uQ2xpZW50IC0+IG9yZ2FuaXNhdGlvbkVuZHBvaW50ICJDYWxscyIgIkhUVFBTL2pzb24iCiAgICAgICAgICAgIGZvcm1zQ2xpZW50IC0+IGZvcm1zRW5kcG9pbnQgIkNhbGxzIiAiSFRUUFMvanNvbiIKICAgICAgICAgICAgZGF0YVNoYXJpbmdDbGllbnQgLT4gZGF0YVNoYXJpbmdFbmRwb2ludCAiQ2FsbHMiICJIVFRQUy9qc29uIgogICAgICAgICAgICBlU2VuZGVyIC0+IGRhdGFTaGFyaW5nRW5kcG9pbnQgIkxvb2tzIHVwIHN1cHBsaWVyIGluZm9ybWF0aW9uIiAiSFRUUFMvanNvbiIKICAgICAgICB9CgogICAgICAgIGJ1eWVyIC0+IGVTZW5kZXIgIlVzZXMiCgogICAgICAgIGZ0cyAtPiBvbmVMb2dpbiAiQXV0aGVudGljYXRlcyB3aXRoIgogICAgICAgIGZ0cyAtPiB0b2tlbkVuZHBvaW50ICJBdXRob3JpemVzIHdpdGgiCiAgICAgICAgZnRzIC0+IG9wZW5JZENvbmZpZ3VyYXRpb25FbmRwb2ludCAiUmV0cmlldmVzIE9wZW5JRCBjb25maWd1cmF0aW9uIGZyb20iCiAgICAgICAgZnRzIC0+IG9wZW5JZEp3a3NDb25maWd1cmF0aW9uRW5kcG9pbnQgIlJldHJpZXZlcyBKc29uIFdlYiBLZXkgU2V0IGZyb20iCiAgICAgICAgd2ViQXBwIC0+IG9wZW5JZENvbmZpZ3VyYXRpb25FbmRwb2ludCAiUmV0cmlldmVzIE9wZW5JRCBjb25maWd1cmF0aW9uIGZyb20iCiAgICAgICAgd2ViQXBwIC0+IG9wZW5JZEp3a3NDb25maWd1cmF0aW9uRW5kcG9pbnQgIlJldHJpZXZlcyBKc29uIFdlYiBLZXkgU2V0IGZyb20iCiAgICAgICAgY2ZzIC0+IGF1dGhvcml0eSAiQXV0aG9yaXplcyB3aXRoIgogICAgICAgIHBwZyAtPiBhdXRob3JpdHkgIkF1dGhvcml6ZXMgd2l0aCIKICAgIH0KCiAgICB2aWV3cyB7CiAgICAgICAgc3lzdGVtQ29udGV4dCBjZHAgIkNEUC0xLVN5c3RlbUNvbnRleHQiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgc3lzdGVtIGNvbnRleHQgZGlhZ3JhbSBmb3IgdGhlIENlbnRyYWwgRGlnaXRhbCBQbGF0Zm9ybS4iCiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lciBjZHAgIkNEUC0yLUNvbnRhaW5lclZpZXciIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29udGFpbmVyIGRpYWdyYW0gZm9yIHRoZSBDZW50cmFsIERpZ2l0YWwgUGxhdGZvcm0uIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgYXV0aG9yaXR5ICJDRFAtMy1BdXRob3JpdHktQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIEF1dGhvcml0eSBzZXJ2aWNlLiIKICAgICAgICB9CiAgICAgICAgY29tcG9uZW50IHdlYkFwcCAiQ0RQLTMtV2ViQXBwLUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBXZWIgQXBwbGljYXRpb24uIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgdGVuYW50QXBpICJDRFAtNC1UZW5hbnRBcGktQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIFRlbmFudCBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgcGVyc29uQXBpICJDRFAtNS1QZXJzb25BcGktQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIFBlcnNvbiBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgb3JnYW5pc2F0aW9uQXBpICJDRFAtNi1PcmdhbmlzYXRpb25BcGktQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIE9yZ2FuaXNhdGlvbiBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgZm9ybXNBcGkgIkNEUC03LUZvcm1zQXBpLUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBGb3JtcyBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgZGF0YVNoYXJpbmdBcGkgIkNEUC04LURhdGFTaGFyaW5nQXBpLUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBEYXRhIFNoYXJpbmcgQVBJLiIKICAgICAgICB9CiAgICAgICAgdGhlbWUgZGVmYXVsdAogICAgICAgIHN0eWxlcyB7CiAgICAgICAgICAgIGVsZW1lbnQgRGF0YWJhc2UgewogICAgICAgICAgICAgICAgc2hhcGUgQ3lsaW5kZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50IFdlYkFwcCB7CiAgICAgICAgICAgICAgICBzaGFwZSBXZWJCcm93c2VyCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgY29uZmlndXJhdGlvbiB7CiAgICAgICAgc2NvcGUgc29mdHdhcmVzeXN0ZW0KICAgIH0KCn0K" + "structurizr.dsl" : "d29ya3NwYWNlICJDZW50cmFsIERpZ2l0YWwgUGxhdGZvcm0iIHsKCiAgICAhaWRlbnRpZmllcnMgaGllcmFyY2hpY2FsCgogICAgbW9kZWwgewogICAgICAgIHN1cHBsaWVyID0gcGVyc29uICJTdXBwbGllciIKICAgICAgICBidXllciA9IHBlcnNvbiAiQnV5ZXIiCiAgICAgICAgZVNlbmRlciA9IHNvZnR3YXJlU3lzdGVtICJlU2VuZGVyIiAiQ29tbWVyY2lhbCBTb2Z0d2FyZSB0aGF0IEJ1eWVycyB1c2UgdG8gbWFuYWdlIHRlbmRlciBwcm9jZXNzZXMiCiAgICAgICAgb25lTG9naW4gPSBzb2Z0d2FyZVN5c3RlbSAiR292LnVrIE9uZSBMb2dpbiIgIkxldCB1c2VycyBzaWduIGluIGFuZCBwcm92ZSB0aGVpciBpZGVudGl0aWVzIHRvIHVzZSB5b3VyIHNlcnZpY2UiCiAgICAgICAgZ292Tm90aWZ5ID0gc29mdHdhcmVTeXN0ZW0gIkdvdi51ayBOb3RpZnkiICJTZW5kcyBlbWFpbHMsIHRleHQgbWVzc2FnZXMgYW5kIGxldHRlcnMiCiAgICAgICAgY29tcGFuaWVzSG91c2UgPSBzb2Z0d2FyZVN5c3RlbSAiQ29tcGFuaWVzIEhvdXNlIiAiUHJvdmlkZXMgcmVnaXN0ZXJlZCBjb21wYW55IGRldGFpbHMiCiAgICAgICAgZnRzID0gc29mdHdhcmVTeXN0ZW0gIkZpbmQgYSBUZW5kZXIiCiAgICAgICAgY2ZzID0gc29mdHdhcmVTeXN0ZW0gIlN1cHBsaWVyIEluZm9ybWF0aW9uIGFuZCBDb250cmFjdHMgRmluZGVyIgogICAgICAgIHBwZyA9IHNvZnR3YXJlU3lzdGVtICJQdWJsaWMgUHJvY3VyZW1lbnQgR2F0ZXdheSIKICAgICAgICBjZHAgPSBzb2Z0d2FyZVN5c3RlbSAiQ2VudHJhbCBEaWdpdGFsIFBsYXRmb3JtIiAiU3VwcG9ydHMgcHJvY3VyZW1lbnQiIHsKCiAgICAgICAgICAgIG1lc3NhZ2VRdWV1ZSA9IGNvbnRhaW5lciAiTWVzc2FnZSBRdWV1ZSIgIiIgU1FTICJNZXNzYWdlIFF1ZXVlIiB7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGdyb3VwICJFbnRpdHkgVmVyaWZpY2F0aW9uIiB7CiAgICAgICAgICAgICAgICBlbnRpdHlWZXJpZmljYXRpb25EYXRhYmFzZSA9IGNvbnRhaW5lciAiRW50aXR5IFZlcmlmaWNhdGlvbiBEYXRhYmFzZSIgIiIgUG9zdGdyZVNRTCBEYXRhYmFzZSB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbnRpdHlWZXJpZmljYXRpb24gPSBjb250YWluZXIgIkVudGl0eSBWZXJpZmljYXRpb24iICIiICJBc3AuTmV0IENvcmUiIFdlYkFwaSB7CiAgICAgICAgICAgICAgICAgICAgZW50aXR5VmVyaWZpY2F0aW9uRW5kcG9pbnQgPSBjb21wb25lbnQgIkVudGl0eSBWZXJpZmljYXRpb24gRW5kcG9pbnQiICJRdWVyaWVzIGtub3duIGlkZW50aWZlcnMuIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgICAgICAgICAgZW50aXR5VmVyaWZpY2F0aW9uVXNlQ2FzZSA9IGNvbXBvbmVudCAiVXNlIENhc2UiCiAgICAgICAgICAgICAgICAgICAgZW50aXR5VmVyaWZpY2F0aW9uVXNlQ2FzZSAtPiBtZXNzYWdlUXVldWUgInB1Ymxpc2hlcyB0byAvIGxpc3RlbnMgdG8iICJIVFRQUyIKICAgICAgICAgICAgICAgICAgICAtPiBlbnRpdHlWZXJpZmljYXRpb25EYXRhYmFzZSAicmVhZHMvd3JpdGVzIiAiU1FMIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBncm91cCAiT3JnYW5pc2F0aW9uIEluZm9ybWF0aW9uIiB7CiAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25JbmZvcm1hdGlvbkRhdGFiYXNlID0gY29udGFpbmVyICJPcmdhbmlzYXRpb24gSW5mb3JtYXRpb24gRGF0YWJhc2UiICIiIFBvc3RncmVTUUwgRGF0YWJhc2UgewogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZmlsZVN0b3JhZ2UgPSBjb250YWluZXIgIkZpbGUgU3RvcmFnZSIgIiIgUzMgIkZpbGUgU3RvcmFnZSIgewogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGF1dGhvcml0eSA9IGNvbnRhaW5lciAiQXV0aG9yaXR5IiAiIiAiQXNwLk5ldCBDb3JlIiBXZWJBcGkgewogICAgICAgICAgICAgICAgICAgIG9wZW5JZENvbmZpZ3VyYXRpb25FbmRwb2ludCA9IGNvbXBvbmVudCAiT3BlbklEIFdlbGwtS25vd24gQ29uZmlndXJhdGlvbiBFbmRwb2ludCIgIkV4cG9zZXMgT3BlbklEIGNvbmZpZ3VyYXRpb24iICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgICAgICAgICBvcGVuSWRKd2tzQ29uZmlndXJhdGlvbkVuZHBvaW50ID0gY29tcG9uZW50ICJPcGVuSUQgV2VsbC1Lbm93biBKV0tTIENvbmZpZ3VyYXRpb24gRW5kcG9pbnQiICJFeHBvc2VzIEpzb24gV2ViIEtleSBTZXQiICJBc3AuTmV0IENvcmUgV2ViIEFQSSIKICAgICAgICAgICAgICAgICAgICB0b2tlbkVuZHBvaW50ID0gY29tcG9uZW50ICJUb2tlbiBlbmRwb2ludCIgIkV4Y2hhbmdlcyBhIHZhbGlkIE9uZSBMb2dpbiB0b2tlbiB0byBhIGxvbmdlci1saXZlZCB0b2tlbiB3aXRoIGFkZGl0aW9uYWwgY2xhaW1zLiIgIkFzcC5OZXQgQ29yZSBXZWIgQVBJIgogICAgICAgICAgICAgICAgICAgIC0+IG9yZ2FuaXNhdGlvbkluZm9ybWF0aW9uRGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRlbmFudEFwaSA9IGNvbnRhaW5lciAiVGVuYW50IEFQSSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgICAgICB0ZW5hbnRFbmRwb2ludCA9IGNvbXBvbmVudCAiVGVuYW50IEVuZHBvaW50IiAiIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJUZW5hbnRVc2VDYXNlID0gY29tcG9uZW50ICJSZWdpc3RlciBUZW5hbnQgVXNlIENhc2UiCiAgICAgICAgICAgICAgICAgICAgZ2V0VGVuYW50VXNlQ2FzZSA9IGNvbXBvbmVudCAiR2V0IFRlbmFudCBVc2UgQ2FzZSIKICAgICAgICAgICAgICAgICAgICB0ZW5hbnRQZXJzaXN0ZW5jZSA9IGNvbXBvbmVudCAiUGVyc2lzdGVuY2UiICIiICJQcm9qZWN0IgogICAgICAgICAgICAgICAgICAgIHRlbmFudEVuZHBvaW50IC0+IHJlZ2lzdGVyVGVuYW50VXNlQ2FzZSAiRXhlY3V0ZXMiCiAgICAgICAgICAgICAgICAgICAgdGVuYW50RW5kcG9pbnQgLT4gZ2V0VGVuYW50VXNlQ2FzZSAiRXhlY3V0ZXMiCiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJUZW5hbnRVc2VDYXNlIC0+IHRlbmFudFBlcnNpc3RlbmNlICJDYWxscyIKICAgICAgICAgICAgICAgICAgICBnZXRUZW5hbnRVc2VDYXNlIC0+IHRlbmFudFBlcnNpc3RlbmNlICJDYWxscyIKICAgICAgICAgICAgICAgICAgICB0ZW5hbnRQZXJzaXN0ZW5jZSAtPiBvcmdhbmlzYXRpb25JbmZvcm1hdGlvbkRhdGFiYXNlICJyZWFkcy93cml0ZXMiICJTUUwiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwZXJzb25BcGkgPSBjb250YWluZXIgIlBlcnNvbiBBUEkiICIiICJBc3AuTmV0IENvcmUiIFdlYkFwaSB7CiAgICAgICAgICAgICAgICAgICAgcGVyc29uRW5kcG9pbnQgPSBjb21wb25lbnQgIlBlcnNvbiBFbmRwb2ludCIgIiIgIkFzcC5OZXQgQ29yZSBXZWIgQVBJIgogICAgICAgICAgICAgICAgICAgIC0+IG9yZ2FuaXNhdGlvbkluZm9ybWF0aW9uRGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG9yZ2FuaXNhdGlvbkFwaSA9IGNvbnRhaW5lciAiT3JnYW5pc2F0aW9uIEFQSSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25FbmRwb2ludCA9IGNvbXBvbmVudCAiT3JnYW5pc2F0aW9uIEVuZHBvaW50IiAiIiAiQXNwLk5ldCBDb3JlIFdlYiBBUEkiCiAgICAgICAgICAgICAgICAgICAgdXNlQ2FzZSA9IGNvbXBvbmVudCAiVXNlIENhc2UiCiAgICAgICAgICAgICAgICAgICAgdXNlQ2FzZSAtPiBtZXNzYWdlUXVldWUgInB1Ymxpc2hlcyB0byAvIGxpc3RlbnMgdG8iICJIVFRQUyIKICAgICAgICAgICAgICAgICAgICB1c2VDYXNlIC0+IGdvdk5vdGlmeSAic2VuZHMgbm90aWZpY2F0aW9ucyB3aXRoIiAiSFRUUFMiCiAgICAgICAgICAgICAgICAgICAgLT4gb3JnYW5pc2F0aW9uSW5mb3JtYXRpb25EYXRhYmFzZSAicmVhZHMvd3JpdGVzIiAiU1FMIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9ybXNBcGkgPSBjb250YWluZXIgIkZvcm1zIEFQSSIgIiIgIkFzcC5OZXQgQ29yZSIgV2ViQXBpIHsKICAgICAgICAgICAgICAgICAgICBmb3Jtc0VuZHBvaW50ID0gY29tcG9uZW50ICJGb3JtcyBFbmRwb2ludCIgIiIgIkFzcC5OZXQgQ29yZSBXZWIgQVBJIgogICAgICAgICAgICAgICAgICAgIHVzZUNhc2UgPSBjb21wb25lbnQgIlVzZSBDYXNlIgogICAgICAgICAgICAgICAgICAgIHVzZUNhc2UgLT4gZmlsZVN0b3JhZ2UgIndyaXRlcyB0byIgIkhUVFBTIgogICAgICAgICAgICAgICAgICAgIC0+IG9yZ2FuaXNhdGlvbkluZm9ybWF0aW9uRGF0YWJhc2UgInJlYWRzL3dyaXRlcyIgIlNRTCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRhdGFTaGFyaW5nQXBpID0gY29udGFpbmVyICJEYXRhIFNoYXJpbmcgQVBJIiAiIiAiQXNwLk5ldCBDb3JlIiBXZWJBcGkgewogICAgICAgICAgICAgICAgICAgIGRhdGFTaGFyaW5nRW5kcG9pbnQgPSBjb21wb25lbnQgIkRhdGEgU2hhcmluZyBFbmRwb2ludCIgIiIgIkFzcC5OZXQgQ29yZSBXZWIgQVBJIgogICAgICAgICAgICAgICAgICAgIHVzZUNhc2UgPSBjb21wb25lbnQgIlVzZSBDYXNlIgogICAgICAgICAgICAgICAgICAgIHVzZUNhc2UgLT4gZmlsZVN0b3JhZ2UgIndyaXRlcyB0byAvIHJlYWRzIGZyb20iICJIVFRQUyIKICAgICAgICAgICAgICAgICAgICAtPiBvcmdhbmlzYXRpb25JbmZvcm1hdGlvbkRhdGFiYXNlICJyZWFkcy93cml0ZXMiICJTUUwiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3ZWJBcHAgPSBjb250YWluZXIgIldlYiBBcHBsaWNhdGlvbiIgIkFjY291bnQgJiBkYXRhIGNhcHR1cmUgZnJvbnRlbmQiICJBc3AuTmV0IENvcmUgTVZDIiBXZWJBcHAgewogICAgICAgICAgICAgICAgICAgIGdyb3VwICJMaWJyYXJpZXMiIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50Q2xpZW50ID0gY29tcG9uZW50ICJUZW5hbnQgQ2xpZW50IiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5ICJDIyBwcm9qZWN0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgVGVuYW50IEFQSSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgIlNoYXJlZCBDb21wb25lbnQiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uQ2xpZW50ID0gY29tcG9uZW50ICJQZXJzb24gQ2xpZW50IiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5ICJDIyBwcm9qZWN0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgUGVyc29uIEFQSSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgIlNoYXJlZCBDb21wb25lbnQiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgb3JnYW5pc2F0aW9uQ2xpZW50ID0gY29tcG9uZW50ICJPcmdhbmlzYXRpb24gQ2xpZW50IiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5ICJDIyBwcm9qZWN0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgT3JnYW5pc2F0aW9uIEFQSSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgIlNoYXJlZCBDb21wb25lbnQiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXNDbGllbnQgPSBjb21wb25lbnQgIkZvcm1zIENsaWVudCIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5vbG9neSAiQyMgcHJvamVjdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYWtlcyBBUEkgY2FsbHMgdG8gdGhlIEZvcm1zIEFQSSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgIlNoYXJlZCBDb21wb25lbnQiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNoYXJpbmdDbGllbnQgPSBjb21wb25lbnQgIkRhdGEgU2hhcmluZyBDbGllbnQiIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkMjIHByb2plY3QiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFrZXMgQVBJIGNhbGxzIHRvIHRoZSBEYXRhIFNoYXJpbmcgQVBJIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyAiU2hhcmVkIENvbXBvbmVudCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlWZXJpZmljYXRpb25DbGllbnQgPSBjb21wb25lbnQgIkVudGl0eSBWZXJpZmljYXRpb24gQ2xpZW50IiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5ICJDIyBwcm9qZWN0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1ha2VzIEFQSSBjYWxscyB0byB0aGUgRW50aXR5IFZlcmlmaWNhdGlvbiBBUEkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzICJTaGFyZWQgQ29tcG9uZW50IgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyID0gY29tcG9uZW50ICJNVkMgQ29udHJvbGxlciIgIkVuYWJsZXMgd2ViIHVzZXJzIHRvIHBlcmZvcm0gdGFza3MuIiAiQXNwLk5ldCBDb3JlIE1WQyBDb250cm9sbGVyIgoKICAgICAgICAgICAgICAgICAgICBzdXBwbGllciAtPiBtdmNDb250cm9sbGVyICJVc2VzIiAiSFRUUFMiCiAgICAgICAgICAgICAgICAgICAgYnV5ZXIgLT4gbXZjQ29udHJvbGxlciAiVXNlcyIgIkhUVFBTIgoKICAgICAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IG9uZUxvZ2luICJBdXRoZW50aWNhdGVzIHdpdGgiICJIVFRQUyIKICAgICAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IGNvbXBhbmllc0hvdXNlICJQdWxscyBjb21wYW55IGRldGFpbHMgZnJvbSIgIkhUVFBTIgogICAgICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gYXV0aG9yaXR5LnRva2VuRW5kcG9pbnQgIkF1dGhlbnRpY2F0ZXMgYW5kIGF1dGhvcmlzZXMgd2l0aCIgIkhUVFBTIgogICAgICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gdGVuYW50Q2xpZW50ICJVc2VzIgogICAgICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gcGVyc29uQ2xpZW50ICJVc2VzIgogICAgICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gb3JnYW5pc2F0aW9uQ2xpZW50ICJVc2VzIgogICAgICAgICAgICAgICAgICAgIG12Y0NvbnRyb2xsZXIgLT4gZm9ybXNDbGllbnQgIlVzZXMiCiAgICAgICAgICAgICAgICAgICAgbXZjQ29udHJvbGxlciAtPiBkYXRhU2hhcmluZ0NsaWVudCAiVXNlcyIKICAgICAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IGVudGl0eVZlcmlmaWNhdGlvbkNsaWVudCAiVXNlcyIKICAgICAgICAgICAgICAgICAgICBtdmNDb250cm9sbGVyIC0+IGZpbGVTdG9yYWdlICJ3cml0ZXMgdG8iICJIVFRQUyIKCiAgICAgICAgICAgICAgICAgICAgdGVuYW50Q2xpZW50IC0+IHRlbmFudEFwaS50ZW5hbnRFbmRwb2ludCAiQ2FsbHMiICJIVFRQUy9qc29uIgogICAgICAgICAgICAgICAgICAgIHBlcnNvbkNsaWVudCAtPiBwZXJzb25BcGkucGVyc29uRW5kcG9pbnQgIkNhbGxzIiAiSFRUUFMvanNvbiIKICAgICAgICAgICAgICAgICAgICBvcmdhbmlzYXRpb25DbGllbnQgLT4gb3JnYW5pc2F0aW9uQXBpLm9yZ2FuaXNhdGlvbkVuZHBvaW50ICJDYWxscyIgIkhUVFBTL2pzb24iCiAgICAgICAgICAgICAgICAgICAgZm9ybXNDbGllbnQgLT4gZm9ybXNBcGkuZm9ybXNFbmRwb2ludCAiQ2FsbHMiICJIVFRQUy9qc29uIgogICAgICAgICAgICAgICAgICAgIGRhdGFTaGFyaW5nQ2xpZW50IC0+IGRhdGFTaGFyaW5nQXBpLmRhdGFTaGFyaW5nRW5kcG9pbnQgIkNhbGxzIiAiSFRUUFMvanNvbiIKICAgICAgICAgICAgICAgICAgICBlbnRpdHlWZXJpZmljYXRpb25DbGllbnQgLT4gZW50aXR5VmVyaWZpY2F0aW9uLmVudGl0eVZlcmlmaWNhdGlvbkVuZHBvaW50ICJDYWxscyIgIkhUVFBTL2pzb24iCgogICAgICAgICAgICAgICAgICAgIC0+IGNkcC5hdXRob3JpdHkub3BlbklkQ29uZmlndXJhdGlvbkVuZHBvaW50ICJSZXRyaWV2ZXMgT3BlbklEIGNvbmZpZ3VyYXRpb24gZnJvbSIKICAgICAgICAgICAgICAgICAgICAtPiBjZHAuYXV0aG9yaXR5Lm9wZW5JZEp3a3NDb25maWd1cmF0aW9uRW5kcG9pbnQgIlJldHJpZXZlcyBKc29uIFdlYiBLZXkgU2V0IGZyb20iCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVTZW5kZXIgLT4gZGF0YVNoYXJpbmdBcGkuZGF0YVNoYXJpbmdFbmRwb2ludCAiTG9va3MgdXAgc3VwcGxpZXIgaW5mb3JtYXRpb24iICJIVFRQUy9qc29uIgogICAgICAgIH0KCiAgICAgICAgYnV5ZXIgLT4gZVNlbmRlciAiVXNlcyIKCiAgICAgICAgZnRzIC0+IG9uZUxvZ2luICJBdXRoZW50aWNhdGVzIHdpdGgiCiAgICAgICAgZnRzIC0+IGNkcC5hdXRob3JpdHkudG9rZW5FbmRwb2ludCAiQXV0aGVudGljYXRlcyB3aXRoIgogICAgICAgIGZ0cyAtPiBjZHAuYXV0aG9yaXR5Lm9wZW5JZENvbmZpZ3VyYXRpb25FbmRwb2ludCAiUmV0cmlldmVzIE9wZW5JRCBjb25maWd1cmF0aW9uIGZyb20iCiAgICAgICAgZnRzIC0+IGNkcC5hdXRob3JpdHkub3BlbklkSndrc0NvbmZpZ3VyYXRpb25FbmRwb2ludCAiUmV0cmlldmVzIEpzb24gV2ViIEtleSBTZXQgZnJvbSIKICAgICAgICBmdHMgLT4gY2RwLm9yZ2FuaXNhdGlvbkFwaS5vcmdhbmlzYXRpb25FbmRwb2ludCAiQ2FsbHMiICJIVFRQUy9qc29uIgogICAgICAgIGNmcyAtPiBjZHAuYXV0aG9yaXR5ICJBdXRoZW50aWNhdGVzIHdpdGgiCiAgICAgICAgcHBnIC0+IGNkcC5hdXRob3JpdHkgIkF1dGhlbnRpY2F0ZXMgd2l0aCIKICAgIH0KCiAgICB2aWV3cyB7CiAgICAgICAgc3lzdGVtQ29udGV4dCBjZHAgIkNEUC0xLVN5c3RlbUNvbnRleHQiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgc3lzdGVtIGNvbnRleHQgZGlhZ3JhbSBmb3IgdGhlIENlbnRyYWwgRGlnaXRhbCBQbGF0Zm9ybS4iCiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lciBjZHAgIkNEUC0yLUNvbnRhaW5lclZpZXciIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29udGFpbmVyIGRpYWdyYW0gZm9yIHRoZSBDZW50cmFsIERpZ2l0YWwgUGxhdGZvcm0uIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgY2RwLmF1dGhvcml0eSAiQ0RQLTMtQXV0aG9yaXR5LUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBBdXRob3JpdHkgc2VydmljZS4iCiAgICAgICAgfQogICAgICAgIGNvbXBvbmVudCBjZHAud2ViQXBwICJDRFAtMy1XZWJBcHAtQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIFdlYiBBcHBsaWNhdGlvbi4iCiAgICAgICAgfQogICAgICAgIGNvbXBvbmVudCBjZHAudGVuYW50QXBpICJDRFAtNC1UZW5hbnRBcGktQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIFRlbmFudCBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgY2RwLnBlcnNvbkFwaSAiQ0RQLTUtUGVyc29uQXBpLUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBQZXJzb24gQVBJLiIKICAgICAgICB9CiAgICAgICAgY29tcG9uZW50IGNkcC5vcmdhbmlzYXRpb25BcGkgIkNEUC02LU9yZ2FuaXNhdGlvbkFwaS1Db21wb25lbnRzIiB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNvbXBvbmVudCBkaWFncmFtIGZvciB0aGUgT3JnYW5pc2F0aW9uIEFQSS4iCiAgICAgICAgfQogICAgICAgIGNvbXBvbmVudCBjZHAuZm9ybXNBcGkgIkNEUC03LUZvcm1zQXBpLUNvbXBvbmVudHMiIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29tcG9uZW50IGRpYWdyYW0gZm9yIHRoZSBGb3JtcyBBUEkuIgogICAgICAgIH0KICAgICAgICBjb21wb25lbnQgY2RwLmRhdGFTaGFyaW5nQXBpICJDRFAtOC1EYXRhU2hhcmluZ0FwaS1Db21wb25lbnRzIiB7CiAgICAgICAgICAgIGluY2x1ZGUgKgogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNvbXBvbmVudCBkaWFncmFtIGZvciB0aGUgRGF0YSBTaGFyaW5nIEFQSS4iCiAgICAgICAgfQogICAgICAgIGNvbXBvbmVudCBjZHAuZW50aXR5VmVyaWZpY2F0aW9uICJDRFAtOS1FbnRpdHlWZXJpZmljYXRpb24tQ29tcG9uZW50cyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjb21wb25lbnQgZGlhZ3JhbSBmb3IgdGhlIEVudGl0eSBWZXJpZmljYXRpb24uIgogICAgICAgIH0KICAgICAgICB0aGVtZSBkZWZhdWx0CiAgICAgICAgc3R5bGVzIHsKICAgICAgICAgICAgZWxlbWVudCBEYXRhYmFzZSB7CiAgICAgICAgICAgICAgICBzaGFwZSBDeWxpbmRlcgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIk1lc3NhZ2UgUXVldWUiIHsKICAgICAgICAgICAgICAgIHNoYXBlIFBpcGUKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJGaWxlIFN0b3JhZ2UiIHsKICAgICAgICAgICAgICAgIHNoYXBlIEZvbGRlcgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgV2ViQXBwIHsKICAgICAgICAgICAgICAgIHNoYXBlIFdlYkJyb3dzZXIKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb25maWd1cmF0aW9uIHsKICAgICAgICBzY29wZSBzb2Z0d2FyZXN5c3RlbQogICAgfQoKfQ==" }, "views" : { "componentViews" : [ { - "containerId" : "9", + "containerId" : "21", "description" : "The component diagram for the Authority service.", "dimensions" : { "height" : 1748, "width" : 2480 }, "elements" : [ { - "id" : "5", + "id" : "7", "x" : 1145, "y" : 1285 }, { - "id" : "10", + "id" : "22", "x" : 1145, "y" : 655 }, { - "id" : "11", + "id" : "23", "x" : 1770, "y" : 655 }, { - "id" : "12", + "id" : "24", "x" : 500, "y" : 655 }, { - "id" : "33", + "id" : "61", "x" : 1145, "y" : 50 } ], @@ -886,146 +1254,182 @@ "order" : 3, "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "48" + "id" : "117" }, { - "id" : "84" + "id" : "118" }, { - "id" : "87" + "id" : "124" }, { - "id" : "88" + "id" : "127" }, { - "id" : "89" + "id" : "128" }, { - "id" : "90" + "id" : "83" } ] }, { - "containerId" : "33", + "containerId" : "61", "description" : "The component diagram for the Web Application.", "dimensions" : { - "height" : 3508, - "width" : 4961 + "height" : 3121, + "width" : 5805 }, "elements" : [ { "id" : "1", - "x" : 2420, - "y" : 45 + "x" : 2264, + "y" : 200 + }, { + "id" : "2", + "x" : 2774, + "y" : 200 }, { "id" : "4", - "x" : 120, - "y" : 705 + "x" : 199, + "y" : 875 }, { - "id" : "9", - "x" : 4390, - "y" : 670 + "id" : "6", + "x" : 200, + "y" : 1196 }, { "id" : "13", - "x" : 960, - "y" : 1900 + "x" : 4493, + "y" : 2085 }, { - "id" : "22", - "x" : 1670, - "y" : 1900 + "id" : "20", + "x" : 3125, + "y" : 2621 }, { - "id" : "24", - "x" : 2395, - "y" : 1900 + "id" : "21", + "x" : 5154, + "y" : 865 }, { "id" : "26", - "x" : 3100, - "y" : 1900 + "x" : 1038, + "y" : 2086 }, { - "id" : "28", - "x" : 3795, - "y" : 1900 + "id" : "37", + "x" : 1729, + "y" : 2087 }, { - "id" : "34", - "x" : 2395, - "y" : 680 + "id" : "40", + "x" : 2420, + "y" : 2088 }, { - "id" : "35", - "x" : 960, - "y" : 1305 + "id" : "49", + "x" : 3111, + "y" : 2089 }, { - "id" : "36", - "x" : 1670, - "y" : 1305 + "id" : "55", + "x" : 3802, + "y" : 2094 }, { - "id" : "37", - "x" : 2395, - "y" : 1305 + "id" : "62", + "x" : 1038, + "y" : 1495 }, { - "id" : "38", - "x" : 3100, - "y" : 1305 + "id" : "63", + "x" : 1726, + "y" : 1495 }, { - "id" : "39", - "x" : 3795, - "y" : 1305 + "id" : "64", + "x" : 2414, + "y" : 1495 + }, { + "id" : "65", + "x" : 3102, + "y" : 1495 + }, { + "id" : "66", + "x" : 3790, + "y" : 1499 + }, { + "id" : "67", + "x" : 4478, + "y" : 1495 + }, { + "id" : "68", + "x" : 2473, + "y" : 874 } ], "externalContainerBoundariesVisible" : false, "key" : "CDP-3-WebApp-Components", "order" : 4, - "paperSize" : "A3_Landscape", "relationships" : [ { - "id" : "40", - "vertices" : [ { - "x" : 2610, - "y" : 550 - } ] + "id" : "102" }, { - "id" : "43" + "id" : "106" }, { - "id" : "47" + "id" : "110" }, { - "id" : "50" + "id" : "114" }, { - "id" : "51" + "id" : "53" }, { - "id" : "52" + "id" : "59" }, { - "id" : "53" + "id" : "69" }, { - "id" : "54" + "id" : "72" }, { - "id" : "60" + "id" : "75" }, { - "id" : "64" + "id" : "78" }, { - "id" : "68" + "id" : "82" }, { - "id" : "72" + "id" : "85" }, { - "id" : "76" + "id" : "86" + }, { + "id" : "87" + }, { + "id" : "88" + }, { + "id" : "89" + }, { + "id" : "90" + }, { + "id" : "91", + "vertices" : [ { + "x" : 2985, + "y" : 1426 + }, { + "x" : 3010, + "y" : 2481 + } ] + }, { + "id" : "94" + }, { + "id" : "98" } ] }, { - "containerId" : "13", + "containerId" : "26", "description" : "The component diagram for the Tenant API.", "dimensions" : { "height" : 1748, "width" : 2480 }, "elements" : [ { - "id" : "14", + "id" : "19", + "x" : 1365, + "y" : 1180 + }, { + "id" : "27", "x" : 735, "y" : 90 }, { - "id" : "15", + "id" : "28", "x" : 745, "y" : 635 }, { - "id" : "16", + "id" : "29", "x" : 1355, "y" : 85 }, { - "id" : "17", + "id" : "30", "x" : 1355, "y" : 635 }, { - "id" : "30", - "x" : 1365, - "y" : 1180 - }, { - "id" : "33", + "id" : "61", "x" : 50, "y" : 90 } ], @@ -1034,31 +1438,31 @@ "order" : 5, "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "18" + "id" : "31" }, { - "id" : "19" + "id" : "32" }, { - "id" : "20" + "id" : "33" }, { - "id" : "21" + "id" : "34" }, { - "id" : "31" + "id" : "35" }, { - "id" : "61" + "id" : "95" } ] }, { - "containerId" : "22", + "containerId" : "37", "description" : "The component diagram for the Person API.", "dimensions" : { "height" : 1748, "width" : 2480 }, "elements" : [ { - "id" : "23", + "id" : "38", "x" : 750, "y" : 35 }, { - "id" : "33", + "id" : "61", "x" : 55, "y" : 35 } ], @@ -1067,44 +1471,73 @@ "order" : 6, "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "65" + "id" : "99" } ] }, { - "containerId" : "24", + "containerId" : "40", "description" : "The component diagram for the Organisation API.", "dimensions" : { - "height" : 1748, - "width" : 2480 + "height" : 1900, + "width" : 2870 }, "elements" : [ { - "id" : "25", - "x" : 720, - "y" : 55 + "id" : "5", + "x" : 2220, + "y" : 219 }, { - "id" : "33", - "x" : 55, - "y" : 55 + "id" : "7", + "x" : 200, + "y" : 645 + }, { + "id" : "11", + "x" : 1490, + "y" : 920 + }, { + "id" : "41", + "x" : 865, + "y" : 224 + }, { + "id" : "42", + "x" : 1480, + "y" : 219 + }, { + "id" : "61", + "x" : 200, + "y" : 230 } ], "externalContainerBoundariesVisible" : false, "key" : "CDP-6-OrganisationApi-Components", "order" : 7, - "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "69" + "id" : "103" + }, { + "id" : "129" + }, { + "id" : "43" + }, { + "id" : "45" } ] }, { - "containerId" : "26", + "containerId" : "49", "description" : "The component diagram for the Forms API.", "dimensions" : { "height" : 1748, "width" : 2480 }, "elements" : [ { - "id" : "27", + "id" : "20", + "x" : 0, + "y" : 0 + }, { + "id" : "50", "x" : 690, "y" : 45 }, { - "id" : "33", + "id" : "51", + "x" : 0, + "y" : 0 + }, { + "id" : "61", "x" : 40, "y" : 45 } ], @@ -1113,10 +1546,14 @@ "order" : 8, "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "73" + "id" : "107" + }, { + "id" : "52" + }, { + "id" : "92" } ] }, { - "containerId" : "28", + "containerId" : "55", "description" : "The component diagram for the Data Sharing API.", "dimensions" : { "height" : 1748, @@ -1127,11 +1564,19 @@ "x" : 685, "y" : 30 }, { - "id" : "29", + "id" : "20", + "x" : 0, + "y" : 0 + }, { + "id" : "56", "x" : 685, "y" : 530 }, { - "id" : "33", + "id" : "57", + "x" : 0, + "y" : 0 + }, { + "id" : "61", "x" : 40, "y" : 530 } ], @@ -1140,18 +1585,62 @@ "order" : 9, "paperSize" : "A5_Landscape", "relationships" : [ { - "id" : "77" + "id" : "111" }, { - "id" : "79" + "id" : "119" + }, { + "id" : "58" + }, { + "id" : "92" + } ] + }, { + "containerId" : "13", + "description" : "The component diagram for the Entity Verification.", + "dimensions" : { + "height" : 1748, + "width" : 2480 + }, + "elements" : [ { + "id" : "11", + "x" : 1620, + "y" : 910 + }, { + "id" : "14", + "x" : 875, + "y" : 200 + }, { + "id" : "15", + "x" : 1585, + "y" : 205 + }, { + "id" : "61", + "x" : 55, + "y" : 200 + } ], + "externalContainerBoundariesVisible" : false, + "key" : "CDP-9-EntityVerification-Components", + "order" : 10, + "paperSize" : "A5_Landscape", + "relationships" : [ { + "id" : "115" + }, { + "id" : "16" } ] } ], "configuration" : { "branding" : { }, - "lastSavedView" : "CDP-1-SystemContext", + "lastSavedView" : "CDP-3-WebApp-Components", + "metadataSymbols" : "SquareBrackets", "styles" : { "elements" : [ { "shape" : "Cylinder", "tag" : "Database" + }, { + "shape" : "Pipe", + "tag" : "Message Queue" + }, { + "shape" : "Folder", + "tag" : "File Storage" }, { "shape" : "WebBrowser", "tag" : "WebApp" @@ -1163,166 +1652,240 @@ "containerViews" : [ { "description" : "The container diagram for the Central Digital Platform.", "dimensions" : { - "height" : 2176, - "width" : 4330 + "height" : 4033, + "width" : 5026 }, "elements" : [ { "id" : "1", - "x" : 224, + "x" : 228, "y" : 199 + }, { + "id" : "2", + "x" : 228, + "y" : 774 }, { "id" : "3", - "x" : 190, - "y" : 995 + "x" : 199, + "y" : 1785 }, { "id" : "4", - "x" : 3845, - "y" : 240 + "x" : 2038, + "y" : 110 }, { "id" : "5", - "x" : 3845, - "y" : 580 + "x" : 3135, + "y" : 3532 }, { "id" : "6", - "x" : 3845, - "y" : 1217 + "x" : 1515, + "y" : 110 }, { "id" : "7", - "x" : 3845, - "y" : 898 + "x" : 3105, + "y" : 110 + }, { + "id" : "8", + "x" : 4118, + "y" : 110 }, { "id" : "9", - "x" : 3075, - "y" : 590 + "x" : 3615, + "y" : 110 + }, { + "id" : "11", + "x" : 3720, + "y" : 3055 + }, { + "id" : "12", + "x" : 4325, + "y" : 2590 }, { "id" : "13", - "x" : 1530, - "y" : 1015 + "x" : 4335, + "y" : 1797 }, { - "id" : "22", - "x" : 2555, - "y" : 1015 + "id" : "19", + "x" : 2072, + "y" : 2590 }, { - "id" : "24", - "x" : 3085, - "y" : 1015 + "id" : "20", + "x" : 1020, + "y" : 1135 + }, { + "id" : "21", + "x" : 3645, + "y" : 1797 }, { "id" : "26", - "x" : 2055, - "y" : 1015 + "x" : 2069, + "y" : 1787 }, { - "id" : "28", - "x" : 1009, - "y" : 1015 + "id" : "37", + "x" : 2593, + "y" : 1797 }, { - "id" : "30", - "x" : 2049, - "y" : 1584 + "id" : "40", + "x" : 3117, + "y" : 1797 }, { - "id" : "33", - "x" : 2039, - "y" : 249 + "id" : "49", + "x" : 1545, + "y" : 1782 + }, { + "id" : "55", + "x" : 1021, + "y" : 1797 + }, { + "id" : "61", + "x" : 2055, + "y" : 832 } ], "externalSoftwareSystemBoundariesVisible" : false, "key" : "CDP-2-ContainerView", "order" : 2, "relationships" : [ { - "id" : "32" + "id" : "100" }, { - "id" : "41" + "id" : "104" }, { - "id" : "44" + "id" : "108" }, { - "id" : "49" + "id" : "112" }, { - "id" : "55" + "id" : "116", + "vertices" : [ { + "x" : 4348, + "y" : 1490 + } ] }, { - "id" : "56" + "id" : "120" }, { - "id" : "57" + "id" : "122" }, { - "id" : "58" + "id" : "123" }, { - "id" : "62", - "vertices" : [ { - "x" : 2030, - "y" : 689 - } ] + "id" : "125" }, { - "id" : "66" + "id" : "130" }, { - "id" : "70" + "id" : "131" }, { - "id" : "74" + "id" : "133" }, { - "id" : "78" + "id" : "17" }, { - "id" : "80" + "id" : "18" }, { - "id" : "83" + "id" : "25" }, { - "id" : "85" + "id" : "36" + }, { + "id" : "39" + }, { + "id" : "44" + }, { + "id" : "46" + }, { + "id" : "48" + }, { + "id" : "53" + }, { + "id" : "54" }, { - "id" : "91" + "id" : "59" }, { - "id" : "93" + "id" : "60" + }, { + "id" : "70" + }, { + "id" : "73" + }, { + "id" : "76" + }, { + "id" : "79" + }, { + "id" : "84" + }, { + "id" : "92" + }, { + "id" : "96" } ], - "softwareSystemId" : "8" + "softwareSystemId" : "10" } ], "systemContextViews" : [ { "description" : "The system context diagram for the Central Digital Platform.", "dimensions" : { - "height" : 2320, - "width" : 2365 + "height" : 2120, + "width" : 3336 }, "elements" : [ { "id" : "1", - "x" : 1630, - "y" : 305 + "x" : 1535, + "y" : 140 + }, { + "id" : "2", + "x" : 2705, + "y" : 1575 }, { "id" : "3", - "x" : 1605, - "y" : 1725 + "x" : 1520, + "y" : 1620 }, { "id" : "4", - "x" : 285, - "y" : 355 + "x" : 200, + "y" : 250 }, { "id" : "5", - "x" : 285, - "y" : 1055 + "x" : 2686, + "y" : 950 }, { "id" : "6", - "x" : 285, - "y" : 1385 + "x" : 2685, + "y" : 625 }, { "id" : "7", - "x" : 285, - "y" : 1720 + "x" : 200, + "y" : 950 }, { "id" : "8", - "x" : 1605, - "y" : 1078 + "x" : 200, + "y" : 1282 + }, { + "id" : "9", + "x" : 200, + "y" : 1615 + }, { + "id" : "10", + "x" : 1520, + "y" : 950 } ], "enterpriseBoundaryVisible" : true, "key" : "CDP-1-SystemContext", "order" : 1, "relationships" : [ { - "id" : "42" + "id" : "121" }, { - "id" : "45" + "id" : "122" }, { - "id" : "81" + "id" : "123" }, { - "id" : "83" + "id" : "126" }, { - "id" : "86" + "id" : "132" }, { - "id" : "92" + "id" : "134" }, { - "id" : "94" + "id" : "47" + }, { + "id" : "71" + }, { + "id" : "74" + }, { + "id" : "77" + }, { + "id" : "80" } ], - "softwareSystemId" : "8" + "softwareSystemId" : "10" } ] } } \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-1-SystemContext-key.svg b/docs/images/diagrams/structurizr-1-CDP-1-SystemContext-key.svg index 8cea5b693..b3741ab2f 100644 --- a/docs/images/diagrams/structurizr-1-CDP-1-SystemContext-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-1-SystemContext-key.svg @@ -1 +1 @@ -PersonSoftware SystemRelationship \ No newline at end of file +PersonSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-1-SystemContext.svg b/docs/images/diagrams/structurizr-1-CDP-1-SystemContext.svg index d6311f231..ea4a56302 100644 --- a/docs/images/diagrams/structurizr-1-CDP-1-SystemContext.svg +++ b/docs/images/diagrams/structurizr-1-CDP-1-SystemContext.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe system context diagram for the Central Digital Platform.[System Context] Central Digital PlatformSupplier[Person]-eSender[Software System]Commercial Software that Buyersuse to manage tender processesGov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceFind a Tender[Software System]-Supplier Information andContracts Finder[Software System]-Public ProcurementGateway[Software System]-Central Digital Platform[Software System]Supports procurementUses[HTTPS]Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Looks up supplierinformation[HTTPS/json]Remove link.Link options.AuthenticateswithRemove link.Link options.Authorizes withRemove link.Link options.Authorizes withRemove link.Link options.Authorizes withRemove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe system context diagram for the Central Digital Platform.[System Context] Central Digital PlatformSupplier[Person]-Buyer[Person]-eSender[Software System]Commercial Software that Buyersuse to manage tender processesGov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceGov.uk Notify[Software System]Sends emails, text messages andlettersCompanies House[Software System]Provides registered companydetailsFind a Tender[Software System]-Supplier Information andContracts Finder[Software System]-Public ProcurementGateway[Software System]-Central Digital Platform[Software System]Supports procurementLooks up supplierinformation[HTTPS/json]Remove link.Link options.UsesRemove link.Link options.AuthenticateswithRemove link.Link options.AuthenticateswithRemove link.Link options.AuthenticateswithRemove link.Link options.AuthenticateswithRemove link.Link options.sendsnotifications with[HTTPS]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Pulls companydetails from[HTTPS]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-2-ContainerView-key.svg b/docs/images/diagrams/structurizr-1-CDP-2-ContainerView-key.svg index b23afdcd4..b07531a44 100644 --- a/docs/images/diagrams/structurizr-1-CDP-2-ContainerView-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-2-ContainerView-key.svg @@ -1 +1 @@ -ContainerContainer, DatabaseContainer, WebAppPersonSoftware SystemRelationship \ No newline at end of file +ContainerContainer, DatabaseContainer, File StorageContainer, MessageQueueContainer, WebAppPersonSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-2-ContainerView.svg b/docs/images/diagrams/structurizr-1-CDP-2-ContainerView.svg index a8a1f8c17..3a236cdb1 100644 --- a/docs/images/diagrams/structurizr-1-CDP-2-ContainerView.svg +++ b/docs/images/diagrams/structurizr-1-CDP-2-ContainerView.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe container diagram for the Central Digital Platform.[Container] Central Digital PlatformSupplier[Person]-eSender[Software System]Commercial Software that Buyersuse to manage tender processesGov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceFind a Tender[Software System]-Supplier Information andContracts Finder[Software System]-Public ProcurementGateway[Software System]-Central Digital Platform[Software System]Authority[Container: Asp.Net Core]-Tenant API[Container: Asp.Net Core]-Person API[Container: Asp.Net Core]-Organisation API[Container: Asp.Net Core]-Forms API[Container: Asp.Net Core]-Data Sharing API[Container: Asp.Net Core]-Organisation InformationDatabase[Container: PostgreSQL]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendreads/writes[SQL]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Authenticatesand authoriseswith[HTTPS]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.Calls[HTTPS/json]Remove vertex.Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Looks up supplierinformation[HTTPS/json]Remove link.Link options.AuthenticateswithRemove link.Link options.Authorizes withRemove link.Link options.Authorizes withRemove link.Link options.Authorizes withRemove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe container diagram for the Central Digital Platform.[Container] Central Digital PlatformSupplier[Person]-Buyer[Person]-eSender[Software System]Commercial Software that Buyersuse to manage tender processesGov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceGov.uk Notify[Software System]Sends emails, text messages andlettersCompanies House[Software System]Provides registered companydetailsFind a Tender[Software System]-Supplier Information andContracts Finder[Software System]-Public ProcurementGateway[Software System]-Central Digital Platform[Software System]Message Queue[Container: SQS]-Entity Verification-Organisation Information-Entity VerificationDatabase[Container: PostgreSQL]-Entity Verification[Container: Asp.Net Core]-Organisation InformationDatabase[Container: PostgreSQL]-File Storage[Container: S3]-Authority[Container: Asp.Net Core]-Tenant API[Container: Asp.Net Core]-Person API[Container: Asp.Net Core]-Organisation API[Container: Asp.Net Core]-Forms API[Container: Asp.Net Core]-Data Sharing API[Container: Asp.Net Core]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove vertex.Remove link.Link options.Looks up supplierinformation[HTTPS/json]Remove link.Link options.UsesRemove link.Link options.AuthenticateswithRemove link.Link options.AuthenticateswithRemove link.Link options.Calls[HTTPS/json]Remove link.Link options.AuthenticateswithRemove link.Link options.AuthenticateswithRemove link.Link options.publishes to /listens to[HTTPS]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.reads/writes[SQL]Remove link.Link options.publishes to /listens to[HTTPS]Remove link.Link options.sendsnotifications with[HTTPS]Remove link.Link options.reads/writes[SQL]Remove link.Link options.writes to[HTTPS]Remove link.Link options.reads/writes[SQL]Remove link.Link options.writes to / readsfrom[HTTPS]Remove link.Link options.reads/writes[SQL]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Pulls companydetails from[HTTPS]Remove link.Link options.Authenticatesand authoriseswith[HTTPS]Remove link.Link options.writes to[HTTPS]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components-key.svg index ace8d6ea0..b33fda0ca 100644 --- a/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components-key.svg @@ -1 +1 @@ -ComponentContainer, WebAppSoftware SystemRelationship \ No newline at end of file +ComponentContainer, WebAppSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components.svg b/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components.svg index 731250072..3c10f5bbb 100644 --- a/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-3-Authority-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Authority service.[Component] Central Digital Platform - AuthorityFind a Tender[Software System]-Authority[Container]OpenID Well-KnownConfiguration Endpoint[Component: Asp.Net Core Web API]Exposes OpenID configurationOpenID Well-KnownJWKS ConfigurationEndpoint[Component: Asp.Net Core Web API]Exposes Json Web Key SetToken endpoint[Component: Asp.Net Core Web API]Exchanges a valid One Login tokento a longer-lived token withadditional claims.Web Application[Container: Asp.Net Core MVC]Account & data capture frontendAuthenticatesand authoriseswith[HTTPS]Remove link.Link options.Authorizes withRemove link.Link options.Retrieves OpenIDconfigurationfromRemove link.Link options.Retrieves JsonWeb Key Set fromRemove link.Link options.Retrieves OpenIDconfigurationfromRemove link.Link options.Retrieves JsonWeb Key Set fromRemove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Authority service.[Component] Central Digital Platform - AuthorityFind a Tender[Software System]-Authority[Container]OpenID Well-KnownConfiguration Endpoint[Component: Asp.Net Core Web API]Exposes OpenID configurationOpenID Well-KnownJWKS ConfigurationEndpoint[Component: Asp.Net Core Web API]Exposes Json Web Key SetToken endpoint[Component: Asp.Net Core Web API]Exchanges a valid One Login tokento a longer-lived token withadditional claims.Web Application[Container: Asp.Net Core MVC]Account & data capture frontendRetrieves OpenIDconfigurationfromRemove link.Link options.Retrieves JsonWeb Key Set fromRemove link.Link options.AuthenticateswithRemove link.Link options.Retrieves OpenIDconfigurationfromRemove link.Link options.Retrieves JsonWeb Key Set fromRemove link.Link options.Authenticatesand authoriseswith[HTTPS]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components-key.svg index 718d85f17..b6dba61df 100644 --- a/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components-key.svg @@ -1 +1 @@ -ComponentContainerPersonSoftware SystemRelationship \ No newline at end of file +ComponentContainerContainer, File StoragePersonSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components.svg b/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components.svg index 2de9106e8..5823723ec 100644 --- a/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-3-WebApp-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Web Application.[Component] Central Digital Platform - Web ApplicationSupplier[Person]-Gov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceAuthority[Container: Asp.Net Core]-Tenant API[Container: Asp.Net Core]-Person API[Container: Asp.Net Core]-Organisation API[Container: Asp.Net Core]-Forms API[Container: Asp.Net Core]-Data Sharing API[Container: Asp.Net Core]-Web Application[Container]MVC Controller[Component: Asp.Net Core MVC Controller]Enables web users to performtasks.Tenant Client[Component: library]Makes API calls to the Tenant APIPerson Client[Component: library]Makes API calls to the Person APIOrganisation Client[Component: library]Makes API calls to the OrganisationAPIForms Client[Component: library]Makes API calls to the Forms APIData Sharing Client[Component: library]Makes API calls to the Data SharingAPIUses[HTTPS]Remove vertex.Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Authenticatesand authoriseswith[HTTPS]Remove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Web Application.[Component] Central Digital Platform - Web ApplicationSupplier[Person]-Buyer[Person]-Gov.uk One Login[Software System]Let users sign in and prove theiridentities to use your serviceCompanies House[Software System]Provides registered companydetailsEntity Verification[Container: Asp.Net Core]-File Storage[Container: S3]-Authority[Container: Asp.Net Core]-Tenant API[Container: Asp.Net Core]-Person API[Container: Asp.Net Core]-Organisation API[Container: Asp.Net Core]-Forms API[Container: Asp.Net Core]-Data Sharing API[Container: Asp.Net Core]-Web Application[Container]Libraries-MVC Controller[Component: Asp.Net Core MVC Controller]Enables web users to performtasks.Tenant Client[Component: C# project]Makes API calls to the Tenant APIPerson Client[Component: C# project]Makes API calls to the Person APIOrganisation Client[Component: C# project]Makes API calls to the OrganisationAPIForms Client[Component: C# project]Makes API calls to the Forms APIData Sharing Client[Component: C# project]Makes API calls to the Data SharingAPIEntity Verification Client[Component: C# project]Makes API calls to the EntityVerification APICalls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.writes to[HTTPS]Remove link.Link options.writes to / readsfrom[HTTPS]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Uses[HTTPS]Remove link.Link options.Authenticateswith[HTTPS]Remove link.Link options.Pulls companydetails from[HTTPS]Remove link.Link options.Authenticatesand authoriseswith[HTTPS]Remove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.UsesRemove link.Link options.writes to[HTTPS]Remove vertex.Remove vertex.Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components-key.svg index 73a9f2bf8..e12f4053f 100644 --- a/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components-key.svg @@ -1 +1 @@ -ComponentContainer, DatabaseContainer, WebAppRelationship \ No newline at end of file +ComponentContainer, DatabaseContainer, WebAppRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components.svg b/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components.svg index e8b5bafbc..38009e976 100644 --- a/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-4-TenantApi-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Tenant API.[Component] Central Digital Platform - Tenant APITenant API[Container]Tenant Endpoint[Component: Asp.Net Core Web API]-Register Tenant Use Case[Component]-Get Tenant Use Case[Component]-Persistence[Component: Project]-Organisation InformationDatabase[Container: PostgreSQL]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendExecutesRemove link.Link options.ExecutesRemove link.Link options.CallsRemove link.Link options.CallsRemove link.Link options.reads/writes[SQL]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Tenant API.[Component] Central Digital Platform - Tenant APIOrganisation InformationDatabase[Container: PostgreSQL]-Tenant API[Container]Tenant Endpoint[Component: Asp.Net Core Web API]-Register Tenant Use Case[Component]-Get Tenant Use Case[Component]-Persistence[Component: Project]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendExecutesRemove link.Link options.ExecutesRemove link.Link options.CallsRemove link.Link options.CallsRemove link.Link options.reads/writes[SQL]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components-key.svg index 2c66331a7..bb0314579 100644 --- a/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components-key.svg @@ -1 +1 @@ -ComponentContainer, WebAppRelationship \ No newline at end of file +ComponentContainer, WebAppRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components.svg b/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components.svg index 95ddf66a0..e53ffe5c0 100644 --- a/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-5-PersonApi-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Person API.[Component] Central Digital Platform - Person APIPerson API[Container]Person Endpoint[Component: Asp.Net Core Web API]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Person API.[Component] Central Digital Platform - Person APIPerson API[Container]Person Endpoint[Component: Asp.Net Core Web API]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components-key.svg index 2c66331a7..76169202a 100644 --- a/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components-key.svg @@ -1 +1 @@ -ComponentContainer, WebAppRelationship \ No newline at end of file +ComponentContainer, MessageQueueContainer, WebAppSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components.svg b/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components.svg index 213331f3e..d0088bbe4 100644 --- a/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-6-OrganisationApi-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Organisation API.[Component] Central Digital Platform - Organisation APIOrganisation API[Container]Organisation Endpoint[Component: Asp.Net Core Web API]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Organisation API.[Component] Central Digital Platform - Organisation APIGov.uk Notify[Software System]Sends emails, text messages andlettersFind a Tender[Software System]-Message Queue[Container: SQS]-Organisation API[Container]Organisation Endpoint[Component: Asp.Net Core Web API]-Use Case[Component]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.Calls[HTTPS/json]Remove link.Link options.publishes to /listens to[HTTPS]Remove link.Link options.sendsnotifications with[HTTPS]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components-key.svg index 2c66331a7..bc9fcb7e8 100644 --- a/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components-key.svg @@ -1 +1 @@ -ComponentContainer, WebAppRelationship \ No newline at end of file +ComponentContainer, File StorageContainer, WebAppRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components.svg b/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components.svg index 4810cad56..1426dea59 100644 --- a/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-7-FormsApi-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Forms API.[Component] Central Digital Platform - Forms APIForms API[Container]Forms Endpoint[Component: Asp.Net Core Web API]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Forms API.[Component] Central Digital Platform - Forms APIFile Storage[Container: S3]-Forms API[Container]Forms Endpoint[Component: Asp.Net Core Web API]-Use Case[Component]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.writes to[HTTPS]Remove link.Link options.writes to[HTTPS]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components-key.svg index ace8d6ea0..0b69634bb 100644 --- a/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components-key.svg +++ b/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components-key.svg @@ -1 +1 @@ -ComponentContainer, WebAppSoftware SystemRelationship \ No newline at end of file +ComponentContainer, File StorageContainer, WebAppSoftware SystemRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components.svg b/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components.svg index 38643ffb1..d03724df6 100644 --- a/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components.svg +++ b/docs/images/diagrams/structurizr-1-CDP-8-DataSharingApi-Components.svg @@ -1 +1 @@ -Thursday, 6 June 2024 at 12:24 British Summer TimeThe component diagram for the Data Sharing API.[Component] Central Digital Platform - Data Sharing APIeSender[Software System]Commercial Software that Buyersuse to manage tender processesData Sharing API[Container]Data Sharing Endpoint[Component: Asp.Net Core Web API]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.Looks up supplierinformation[HTTPS/json]Remove link.Link options. \ No newline at end of file +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Data Sharing API.[Component] Central Digital Platform - Data Sharing APIeSender[Software System]Commercial Software that Buyersuse to manage tender processesFile Storage[Container: S3]-Data Sharing API[Container]Data Sharing Endpoint[Component: Asp.Net Core Web API]-Use Case[Component]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.Looks up supplierinformation[HTTPS/json]Remove link.Link options.writes to / readsfrom[HTTPS]Remove link.Link options.writes to[HTTPS]Remove link.Link options. \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components-key.svg b/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components-key.svg new file mode 100644 index 000000000..3aa8b9fb7 --- /dev/null +++ b/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components-key.svg @@ -0,0 +1 @@ +ComponentContainer, MessageQueueContainer, WebAppRelationship \ No newline at end of file diff --git a/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components.svg b/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components.svg new file mode 100644 index 000000000..c337e2169 --- /dev/null +++ b/docs/images/diagrams/structurizr-1-CDP-9-EntityVerification-Components.svg @@ -0,0 +1 @@ +Wednesday, 2 October 2024 at 14:29 British Summer TimeThe component diagram for the Entity Verification.[Component] Central Digital Platform - Entity VerificationMessage Queue[Container: SQS]-Entity Verification[Container]Entity VerificationEndpoint[Component: Asp.Net Core Web API]Queries known identifers.Use Case[Component]-Web Application[Container: Asp.Net Core MVC]Account & data capture frontendCalls[HTTPS/json]Remove link.Link options.publishes to /listens to[HTTPS]Remove link.Link options. \ No newline at end of file