diff --git a/docs/diagrams/structurizr/README.md b/docs/diagrams/structurizr/README.md index c805ae45..cbf9328e 100644 --- a/docs/diagrams/structurizr/README.md +++ b/docs/diagrams/structurizr/README.md @@ -1,11 +1,11 @@ # Introduction -Just a README file ... +This README describes use of Structurizr DSL for creating C4 model diagrams ## Repository Structure -- `/structurizr/current`: Contains DSL for current (as-is) Lung Cancer Health Check state -- `/structurizr/pilot`: Contains DSL for Pilot (interim to-be) Lung Cancer Health Check state +- `/structurizr/current`: Contains DSL for current (as-is) Lung Cancer Risk Check state +- `/structurizr/pilot`: Contains DSL for Pilot (interim to-be) Lung Cancer Risk Check state ## Getting Started @@ -37,14 +37,14 @@ docker run -it --rm -p 8080:8080 -v ./:/usr/local/structurizr structurizr/lite Note: For MacOS Sequoia 15.2 and later, use this command instead to avoid sigterm exceptions: ```bash -cd pilot +cd structurizr/pilot docker run --rm -e JAVA_TOOL_OPTIONS="-XX:UseSVE=0" -p 8080:8080 -v ./:/usr/local/structurizr structurizr/lite ``` ##### Windows ```bash -cd pilot +cd structurizr\pilot docker run -it --rm -p 8080:8080 -v %cd%:/usr/local/structurizr structurizr/lite ``` diff --git a/docs/diagrams/structurizr/pilot/workspace.dsl b/docs/diagrams/structurizr/pilot/workspace.dsl index b6c79dbf..e47222ba 100644 --- a/docs/diagrams/structurizr/pilot/workspace.dsl +++ b/docs/diagrams/structurizr/pilot/workspace.dsl @@ -19,10 +19,11 @@ workspace { localNotificationSystem = softwareSystem "Local Notification System" "Delivers communications (letters only) to participants" "External System" - digitalLungCancerRiskSystem = softwareSystem "Pilot Digital Lung Cancer Risk System" "Software System" { - digitalLungCancerRiskApp = container "Pilot Digital Lung Cancer Risk App" "Software System" - digitalLungCancerRiskGUI = container "Pilot Digital Lung Cancer Risk GUI" "Software System" - digitalLungCancerRiskDB = container "Pilot Digital Lung Cancer Risk Anonymous Database" "Anonymous digital app & telephone journey lung cancer risk scores & ratings" "Pilot Digital Lung Cancer Risk Anonymous Database" "Database" + digitalLungCancerRiskSystem = softwareSystem "Pilot Digital Lung Cancer Risk Check System" "Software System" { + url "https://nhsarchitecture.horizzon.cloud/sites/4b53edd4-70ee-451c-af34-7d70040b4d2c/views/75e82512-f992-f011-a3f8-9c2976524fd0" + digitalLungCancerRiskApp = container "Pilot Digital Lung Cancer Risk Check App" "Software System" + digitalLungCancerRiskGUI = container "Pilot Digital Lung Cancer Risk Check GUI" "Software System" + digitalLungCancerRiskDB = container "Pilot Digital Lung Cancer Risk Check Anonymous Database" "Anonymous digital app & telephone journey lung cancer risk scores & ratings" "Pilot Digital Lung Cancer Risk Anonymous Database" "Database" } @@ -37,7 +38,7 @@ workspace { st -> participant "Runs Pilot digital app consent journey & telephone lung risk check journey with" localPreAssessmentSystem -> digitalLungCancerRiskSystem "Provides Pilot ID (LUNGDF200) and telephone lung cancer risk check info (LUNGDF400) to" - participant -> digitalLungCancerRiskSystem "Completes Pilot Digital Lung Cancer Risk journey with" + participant -> digitalLungCancerRiskSystem "Completes Pilot Digital Lung Cancer Risk Check journey with" digitalLungCancerRiskSystem -> localPreAssessmentSystem "Provides Pilot ID digital journey completion info (LUNGDF300) to" digitalLungCancerRiskGUI -> digitalLungCancerRiskApp "Provides Participant facing GUI interface to" diff --git a/docs/diagrams/structurizr/pilot/workspace.json b/docs/diagrams/structurizr/pilot/workspace.json index d83af784..fa514bfc 100644 --- a/docs/diagrams/structurizr/pilot/workspace.json +++ b/docs/diagrams/structurizr/pilot/workspace.json @@ -4,7 +4,7 @@ "documentation" : { }, "id" : 1, "lastModifiedAgent" : "structurizr-ui", - "lastModifiedDate" : "2025-09-10T19:41:00Z", + "lastModifiedDate" : "2025-09-22T15:53:53Z", "model" : { "people" : [ { "description" : "A member of the public who is eligible for lung cancer risk check", @@ -15,7 +15,7 @@ "structurizr.dsl.identifier" : "participant" }, "relationships" : [ { - "description" : "Completes Pilot Digital Lung Cancer Risk journey with", + "description" : "Completes Pilot Digital Lung Cancer Risk Check journey with", "destinationId" : "8", "id" : "21", "sourceId" : "1", @@ -152,7 +152,7 @@ "description" : "Software System", "documentation" : { }, "id" : "9", - "name" : "Pilot Digital Lung Cancer Risk App", + "name" : "Pilot Digital Lung Cancer Risk Check App", "properties" : { "structurizr.dsl.identifier" : "digitallungcancerriskapp" }, @@ -168,7 +168,7 @@ "description" : "Software System", "documentation" : { }, "id" : "10", - "name" : "Pilot Digital Lung Cancer Risk GUI", + "name" : "Pilot Digital Lung Cancer Risk Check GUI", "properties" : { "structurizr.dsl.identifier" : "digitallungcancerriskgui" }, @@ -184,7 +184,7 @@ "description" : "Anonymous digital app & telephone journey lung cancer risk scores & ratings", "documentation" : { }, "id" : "11", - "name" : "Pilot Digital Lung Cancer Risk Anonymous Database", + "name" : "Pilot Digital Lung Cancer Risk Check Anonymous Database", "properties" : { "structurizr.dsl.identifier" : "digitallungcancerriskdb" }, @@ -195,7 +195,7 @@ "documentation" : { }, "id" : "8", "location" : "Unspecified", - "name" : "Pilot Digital Lung Cancer Risk System", + "name" : "Pilot Digital Lung Cancer Risk Check System", "properties" : { "structurizr.dsl.identifier" : "digitallungcancerrisksystem" }, @@ -206,17 +206,18 @@ "sourceId" : "8", "tags" : "Relationship" } ], - "tags" : "Element,Software System" + "tags" : "Element,Software System", + "url" : "https://nhsarchitecture.horizzon.cloud/sites/4b53edd4-70ee-451c-af34-7d70040b4d2c/views/75e82512-f992-f011-a3f8-9c2976524fd0" } ] }, "name" : "Name", "properties" : { - "structurizr.dsl" : "d29ya3NwYWNlIHsKCiAgICBtb2RlbCB7CiAgICAgICAgLy8gUGVvcGxlCiAgICAgICAgcGFydGljaXBhbnQgPSBwZXJzb24gIlBhcnRpY2lwYW50IFVzZXIiICJBIG1lbWJlciBvZiB0aGUgcHVibGljIHdobyBpcyBlbGlnaWJsZSBmb3IgbHVuZyBjYW5jZXIgcmlzayBjaGVjayIgIlBhcnRpY2lwYW50IgogICAgICAgIHN0ID0gcGVyc29uICJMdW5nIENhbmNlciBTY3JlZW5pbmcgUHJvdmlkZXIgU3RhZmYgdXNlcnMiICJJbnRlcm5hbCBzdGFmZiB1c2VycyBpbmNsdWRpbmcgY2xpbmljYWwgYW5kIGFkbWluaXN0cmF0aXZlIHN0YWZmIiAiTHVuZyBDYW5jZXIgU2NyZWVuaW5nIFByb3ZpZGVyIFN0YWZmIgoKICAgICAgICAvLyBEdW1teSAibmV1dHJhbCIgc3lzdGVtIHRvIHVzZSBhcyBkaWFncmFtIHNjb3BlCiAgICAgICAgb3ZlcnZpZXcgPSBzb2Z0d2FyZVN5c3RlbSAiTENSQyBPdmVydmlldyIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTG9naWNhbCBvdmVydmlldyB0byBpbmNsdWRlIGFsbCByZWxldmFudCBzeXN0ZW1zIgogICAgICAgIH0KCiAgICAgICAgLy8gUmVhbCBzeXN0ZW1zCiAgICAgICAgZ3BTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiR1AgU3lzdGVtIiAiSG9sZHMgcHJpbWFyeSBjYXJlIGRhdGEgZm9yIHBhdGllbnRzIiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbENvaG9ydGluZ1N5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJMb2NhbCBDb2hvcnRpbmcgU3lzdGVtIiAiRXh0cmFjdHMgcHJpbWFyeSBjYXJlIGRhdGEgZnJvbSBHUCBzeXN0ZW1zIGFuZCBpZGVudGlmaWVzIGluaXRpYWwgZWxpZ2libGUgY29ob3J0IiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiTG9jYWwgTENSQyBQcmVhc3Nlc3NtZW50IFN5c3RlbSIgIlByb2Nlc3NlcyBkYXRhIGZyb20gR1Agc3lzdGVtIHRvIGlkZW50aWZ5IGF0LXJpc2sgaW5kaXZpZHVhbHMsIG1hbmFnZSBpbnZpdGF0aW9ucywgc3VwcG9ydCBsdW5nIGNhbmNlciByaXNrIGNoZWNrLCBDVCBhcHBvaW50bWVudCBib29raW5nICYgcmVmZXJyYWwiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtID0gc29mdHdhcmVTeXN0ZW0gIkxvY2FsIE5vdGlmaWNhdGlvbiBTeXN0ZW0iICJEZWxpdmVycyBjb21tdW5pY2F0aW9ucyAobGV0dGVycyBvbmx5KSB0byBwYXJ0aWNpcGFudHMiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJQaWxvdCBEaWdpdGFsIEx1bmcgQ2FuY2VyIFJpc2sgU3lzdGVtIiAiU29mdHdhcmUgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgPSBjb250YWluZXIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBBcHAiICJTb2Z0d2FyZSBTeXN0ZW0iCiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tHVUkgPSBjb250YWluZXIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBHVUkiICJTb2Z0d2FyZSBTeXN0ZW0iCiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tEQiA9IGNvbnRhaW5lciAiUGlsb3QgRGlnaXRhbCBMdW5nIENhbmNlciBSaXNrIEFub255bW91cyBEYXRhYmFzZSIgIkFub255bW91cyBkaWdpdGFsIGFwcCAmIHRlbGVwaG9uZSBqb3VybmV5IGx1bmcgY2FuY2VyIHJpc2sgc2NvcmVzICYgcmF0aW5ncyIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBBbm9ueW1vdXMgRGF0YWJhc2UiICJEYXRhYmFzZSIKICAgICAgICB9CgoKICAgICAgICAvLyBSZWFsIHJlbGF0aW9uc2hpcHMKICAgICAgICBncFN5c3RlbSAtPiBsb2NhbENvaG9ydGluZ1N5c3RlbSAiUHJvdmlkZXMgR1AgcGF0aWVudCByZWNvcmQgZGF0YSB0byIKICAgICAgICBsb2NhbENvaG9ydGluZ1N5c3RlbSAtPiBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gIlByb3ZpZGVzIGx1bmcgc2NyZWVuaW5nIGluaXRpYWwgZWxpZ2libGUgY29ob3J0IGRhdGEgKExVTkdERjEwMCkgdG8iCiAgICAgICAgbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtICJTZW5kcyBjb21tdW5pY2F0aW9ucyB1c2luZyIKICAgICAgICBsb2NhbE5vdGlmaWNhdGlvblN5c3RlbSAtPiBwYXJ0aWNpcGFudCAiU2VuZHMgY29tbXVuaWNhdGlvbnMgdG8iCiAgICAgICAgc2VsZWN0aW9uID0gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IHBhcnRpY2lwYW50ICJTZWxlY3RzIGZvciBpbnZpdGF0aW9uIGJhc2VkIG9uIHJpc2siCiAgICAgICAgcmF3R3BEYXRhID0gZ3BTeXN0ZW0gLT4gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtICJQcm92aWRlcyByYXcgZGF0YSB0byIKICAgICAgICBzdCAtPiBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gIlVzZXMgdG8gbWFuYWdlIFBpbG90IGRpZ2l0YWwgYXBwIGNvbnNlbnQsIHRlbGVwaG9uZSBsdW5nIGNhbmNlciByaXNrIGNoZWNrLCBDVCBhcHBvaW50bWVudCBib29raW5nICYgcmVmZXJyYWwgcHJvY2VzcyIKICAgICAgICBzdCAtPiBwYXJ0aWNpcGFudCAiUnVucyBQaWxvdCBkaWdpdGFsIGFwcCBjb25zZW50IGpvdXJuZXkgJiB0ZWxlcGhvbmUgbHVuZyByaXNrIGNoZWNrIGpvdXJuZXkgd2l0aCIKCiAgICAgICAgbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSAiUHJvdmlkZXMgUGlsb3QgSUQgKExVTkdERjIwMCkgYW5kIHRlbGVwaG9uZSBsdW5nIGNhbmNlciByaXNrIGNoZWNrIGluZm8gKExVTkdERjQwMCkgdG8iCiAgICAgICAgcGFydGljaXBhbnQgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrU3lzdGVtICJDb21wbGV0ZXMgUGlsb3QgRGlnaXRhbCBMdW5nIENhbmNlciBSaXNrIGpvdXJuZXkgd2l0aCIKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tTeXN0ZW0gLT4gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtICJQcm92aWRlcyBQaWxvdCBJRCBkaWdpdGFsIGpvdXJuZXkgY29tcGxldGlvbiBpbmZvIChMVU5HREYzMDApIHRvIgoKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tHVUkgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrQXBwICJQcm92aWRlcyBQYXJ0aWNpcGFudCBmYWNpbmcgR1VJIGludGVyZmFjZSB0byIKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrREIgIlJlYWRzIGFuZCB3cml0ZXMgUGFydGljaXBhbnQgZGF0YSB0byIKICAgIH0KCiAgICB2aWV3cyB7CiAgICAgICAgc3lzdGVtQ29udGV4dCBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZXhjbHVkZSBzZWxlY3Rpb24KICAgICAgICAgICAgZXhjbHVkZSByYXdHcERhdGEKICAgICAgICAgICAgLy9hdXRvbGF5b3V0IGxyCiAgICAgICAgICAgIHRpdGxlICJMdW5nIENhbmNlciBSaXNrIENoZWNrIFN5c3RlbSBDb250ZXh0IOKAkyBGdWxsIFZpZXcgKFBpbG90IHN0YXRlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFsbCBzeXN0ZW1zIGFuZCB1c2VyIGludGVyYWN0aW9ucyBpbnZvbHZlZCBpbiBMdW5nIENhbmNlciBSaXNrIENoZWNrIHN0YWdlIG9mIEx1bmcgQ2FuY2VyIFNjcmVlbmluZyAoUGlsb3QpIgogICAgICAgIH0KCiAgICAgICAgY29udGFpbmVyIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSAiQ29udGFpbmVycyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYW5pbWF0aW9uIHsKICAgICAgICAgICAgICAgIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza0dVSSBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgZGlnaXRhbEx1bmdDYW5jZXJSaXNrREIKICAgICAgICAgICAgfQogICAgICAgICAgICBhdXRvTGF5b3V0IGxyCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29udGFpbmVyIGRpYWdyYW0gZm9yIHRoZSBQaWxvdCBMdW5nIENhbmNlciBSaXNrIEFzc2Vzc21lbnQgRGlnaXRhbCBBcHAiCiAgICAgICAgfQoKICAgICAgICBzdHlsZXMgewogICAgICAgICAgICBlbGVtZW50ICJQZXJzb24iIHsKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgICAgIGZvbnRTaXplIDIyCiAgICAgICAgICAgICAgICBzaGFwZSBQZXJzb24KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJQYXJ0aWNpcGFudCIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNjg2ODY4CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiTHVuZyBDYW5jZXIgU2NyZWVuaW5nIFByb3ZpZGVyIFN0YWZmIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICMwODQyN0IKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJTb2Z0d2FyZSBTeXN0ZW0iIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzExNjhiZAogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkV4dGVybmFsIFN5c3RlbSIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNjg2ODY4CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiRXhpc3RpbmcgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICM5OTk5OTkKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDb250YWluZXIiIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzQzOGRkNQogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIldlYiBCcm93c2VyIiB7CiAgICAgICAgICAgICAgICBzaGFwZSBXZWJCcm93c2VyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiTW9iaWxlIEFwcCIgewogICAgICAgICAgICAgICAgc2hhcGUgTW9iaWxlRGV2aWNlTGFuZHNjYXBlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiRGF0YWJhc2UiIHsKICAgICAgICAgICAgICAgIHNoYXBlIEN5bGluZGVyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiUXVldWUiIHsKICAgICAgICAgICAgICAgIHNoYXBlICJQaXBlIgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkNvbXBvbmVudCIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjODViYmYwCiAgICAgICAgICAgICAgICBjb2xvciAjMDAwMDAwCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgIH0KfQ==" + "structurizr.dsl" : "d29ya3NwYWNlIHsKCiAgICBtb2RlbCB7CiAgICAgICAgLy8gUGVvcGxlCiAgICAgICAgcGFydGljaXBhbnQgPSBwZXJzb24gIlBhcnRpY2lwYW50IFVzZXIiICJBIG1lbWJlciBvZiB0aGUgcHVibGljIHdobyBpcyBlbGlnaWJsZSBmb3IgbHVuZyBjYW5jZXIgcmlzayBjaGVjayIgIlBhcnRpY2lwYW50IgogICAgICAgIHN0ID0gcGVyc29uICJMdW5nIENhbmNlciBTY3JlZW5pbmcgUHJvdmlkZXIgU3RhZmYgdXNlcnMiICJJbnRlcm5hbCBzdGFmZiB1c2VycyBpbmNsdWRpbmcgY2xpbmljYWwgYW5kIGFkbWluaXN0cmF0aXZlIHN0YWZmIiAiTHVuZyBDYW5jZXIgU2NyZWVuaW5nIFByb3ZpZGVyIFN0YWZmIgoKICAgICAgICAvLyBEdW1teSAibmV1dHJhbCIgc3lzdGVtIHRvIHVzZSBhcyBkaWFncmFtIHNjb3BlCiAgICAgICAgb3ZlcnZpZXcgPSBzb2Z0d2FyZVN5c3RlbSAiTENSQyBPdmVydmlldyIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTG9naWNhbCBvdmVydmlldyB0byBpbmNsdWRlIGFsbCByZWxldmFudCBzeXN0ZW1zIgogICAgICAgIH0KCiAgICAgICAgLy8gUmVhbCBzeXN0ZW1zCiAgICAgICAgZ3BTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiR1AgU3lzdGVtIiAiSG9sZHMgcHJpbWFyeSBjYXJlIGRhdGEgZm9yIHBhdGllbnRzIiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbENvaG9ydGluZ1N5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJMb2NhbCBDb2hvcnRpbmcgU3lzdGVtIiAiRXh0cmFjdHMgcHJpbWFyeSBjYXJlIGRhdGEgZnJvbSBHUCBzeXN0ZW1zIGFuZCBpZGVudGlmaWVzIGluaXRpYWwgZWxpZ2libGUgY29ob3J0IiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiTG9jYWwgTENSQyBQcmVhc3Nlc3NtZW50IFN5c3RlbSIgIlByb2Nlc3NlcyBkYXRhIGZyb20gR1Agc3lzdGVtIHRvIGlkZW50aWZ5IGF0LXJpc2sgaW5kaXZpZHVhbHMsIG1hbmFnZSBpbnZpdGF0aW9ucywgc3VwcG9ydCBsdW5nIGNhbmNlciByaXNrIGNoZWNrLCBDVCBhcHBvaW50bWVudCBib29raW5nICYgcmVmZXJyYWwiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtID0gc29mdHdhcmVTeXN0ZW0gIkxvY2FsIE5vdGlmaWNhdGlvbiBTeXN0ZW0iICJEZWxpdmVycyBjb21tdW5pY2F0aW9ucyAobGV0dGVycyBvbmx5KSB0byBwYXJ0aWNpcGFudHMiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJQaWxvdCBEaWdpdGFsIEx1bmcgQ2FuY2VyIFJpc2sgQ2hlY2sgU3lzdGVtIiAiU29mdHdhcmUgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICB1cmwgImh0dHBzOi8vbmhzYXJjaGl0ZWN0dXJlLmhvcml6em9uLmNsb3VkL3NpdGVzLzRiNTNlZGQ0LTcwZWUtNDUxYy1hZjM0LTdkNzAwNDBiNGQyYy92aWV3cy83NWU4MjUxMi1mOTkyLWYwMTEtYTNmOC05YzI5NzY1MjRmZDAiCiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgPSBjb250YWluZXIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBDaGVjayBBcHAiICJTb2Z0d2FyZSBTeXN0ZW0iCiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tHVUkgPSBjb250YWluZXIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBDaGVjayBHVUkiICJTb2Z0d2FyZSBTeXN0ZW0iCiAgICAgICAgICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tEQiA9IGNvbnRhaW5lciAiUGlsb3QgRGlnaXRhbCBMdW5nIENhbmNlciBSaXNrIENoZWNrIEFub255bW91cyBEYXRhYmFzZSIgIkFub255bW91cyBkaWdpdGFsIGFwcCAmIHRlbGVwaG9uZSBqb3VybmV5IGx1bmcgY2FuY2VyIHJpc2sgc2NvcmVzICYgcmF0aW5ncyIgIlBpbG90IERpZ2l0YWwgTHVuZyBDYW5jZXIgUmlzayBBbm9ueW1vdXMgRGF0YWJhc2UiICJEYXRhYmFzZSIKICAgICAgICB9CgoKICAgICAgICAvLyBSZWFsIHJlbGF0aW9uc2hpcHMKICAgICAgICBncFN5c3RlbSAtPiBsb2NhbENvaG9ydGluZ1N5c3RlbSAiUHJvdmlkZXMgR1AgcGF0aWVudCByZWNvcmQgZGF0YSB0byIKICAgICAgICBsb2NhbENvaG9ydGluZ1N5c3RlbSAtPiBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gIlByb3ZpZGVzIGx1bmcgc2NyZWVuaW5nIGluaXRpYWwgZWxpZ2libGUgY29ob3J0IGRhdGEgKExVTkdERjEwMCkgdG8iCiAgICAgICAgbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtICJTZW5kcyBjb21tdW5pY2F0aW9ucyB1c2luZyIKICAgICAgICBsb2NhbE5vdGlmaWNhdGlvblN5c3RlbSAtPiBwYXJ0aWNpcGFudCAiU2VuZHMgY29tbXVuaWNhdGlvbnMgdG8iCiAgICAgICAgc2VsZWN0aW9uID0gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IHBhcnRpY2lwYW50ICJTZWxlY3RzIGZvciBpbnZpdGF0aW9uIGJhc2VkIG9uIHJpc2siCiAgICAgICAgcmF3R3BEYXRhID0gZ3BTeXN0ZW0gLT4gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtICJQcm92aWRlcyByYXcgZGF0YSB0byIKICAgICAgICBzdCAtPiBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gIlVzZXMgdG8gbWFuYWdlIFBpbG90IGRpZ2l0YWwgYXBwIGNvbnNlbnQsIHRlbGVwaG9uZSBsdW5nIGNhbmNlciByaXNrIGNoZWNrLCBDVCBhcHBvaW50bWVudCBib29raW5nICYgcmVmZXJyYWwgcHJvY2VzcyIKICAgICAgICBzdCAtPiBwYXJ0aWNpcGFudCAiUnVucyBQaWxvdCBkaWdpdGFsIGFwcCBjb25zZW50IGpvdXJuZXkgJiB0ZWxlcGhvbmUgbHVuZyByaXNrIGNoZWNrIGpvdXJuZXkgd2l0aCIKCiAgICAgICAgbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIC0+IGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSAiUHJvdmlkZXMgUGlsb3QgSUQgKExVTkdERjIwMCkgYW5kIHRlbGVwaG9uZSBsdW5nIGNhbmNlciByaXNrIGNoZWNrIGluZm8gKExVTkdERjQwMCkgdG8iCiAgICAgICAgcGFydGljaXBhbnQgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrU3lzdGVtICJDb21wbGV0ZXMgUGlsb3QgRGlnaXRhbCBMdW5nIENhbmNlciBSaXNrIENoZWNrIGpvdXJuZXkgd2l0aCIKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tTeXN0ZW0gLT4gbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtICJQcm92aWRlcyBQaWxvdCBJRCBkaWdpdGFsIGpvdXJuZXkgY29tcGxldGlvbiBpbmZvIChMVU5HREYzMDApIHRvIgoKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tHVUkgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrQXBwICJQcm92aWRlcyBQYXJ0aWNpcGFudCBmYWNpbmcgR1VJIGludGVyZmFjZSB0byIKICAgICAgICBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgLT4gZGlnaXRhbEx1bmdDYW5jZXJSaXNrREIgIlJlYWRzIGFuZCB3cml0ZXMgUGFydGljaXBhbnQgZGF0YSB0byIKICAgIH0KCiAgICB2aWV3cyB7CiAgICAgICAgc3lzdGVtQ29udGV4dCBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgZXhjbHVkZSBzZWxlY3Rpb24KICAgICAgICAgICAgZXhjbHVkZSByYXdHcERhdGEKICAgICAgICAgICAgLy9hdXRvbGF5b3V0IGxyCiAgICAgICAgICAgIHRpdGxlICJMdW5nIENhbmNlciBSaXNrIENoZWNrIFN5c3RlbSBDb250ZXh0IOKAkyBGdWxsIFZpZXcgKFBpbG90IHN0YXRlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFsbCBzeXN0ZW1zIGFuZCB1c2VyIGludGVyYWN0aW9ucyBpbnZvbHZlZCBpbiBMdW5nIENhbmNlciBSaXNrIENoZWNrIHN0YWdlIG9mIEx1bmcgQ2FuY2VyIFNjcmVlbmluZyAoUGlsb3QpIgogICAgICAgIH0KCiAgICAgICAgY29udGFpbmVyIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza1N5c3RlbSAiQ29udGFpbmVycyIgewogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYW5pbWF0aW9uIHsKICAgICAgICAgICAgICAgIGRpZ2l0YWxMdW5nQ2FuY2VyUmlza0dVSSBkaWdpdGFsTHVuZ0NhbmNlclJpc2tBcHAgZGlnaXRhbEx1bmdDYW5jZXJSaXNrREIKICAgICAgICAgICAgfQogICAgICAgICAgICBhdXRvTGF5b3V0IGxyCiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY29udGFpbmVyIGRpYWdyYW0gZm9yIHRoZSBQaWxvdCBMdW5nIENhbmNlciBSaXNrIEFzc2Vzc21lbnQgRGlnaXRhbCBBcHAiCiAgICAgICAgfQoKICAgICAgICBzdHlsZXMgewogICAgICAgICAgICBlbGVtZW50ICJQZXJzb24iIHsKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgICAgIGZvbnRTaXplIDIyCiAgICAgICAgICAgICAgICBzaGFwZSBQZXJzb24KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJQYXJ0aWNpcGFudCIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNjg2ODY4CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiTHVuZyBDYW5jZXIgU2NyZWVuaW5nIFByb3ZpZGVyIFN0YWZmIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICMwODQyN0IKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJTb2Z0d2FyZSBTeXN0ZW0iIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzExNjhiZAogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkV4dGVybmFsIFN5c3RlbSIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNjg2ODY4CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiRXhpc3RpbmcgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICM5OTk5OTkKICAgICAgICAgICAgICAgIGNvbG9yICNmZmZmZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJDb250YWluZXIiIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzQzOGRkNQogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIldlYiBCcm93c2VyIiB7CiAgICAgICAgICAgICAgICBzaGFwZSBXZWJCcm93c2VyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiTW9iaWxlIEFwcCIgewogICAgICAgICAgICAgICAgc2hhcGUgTW9iaWxlRGV2aWNlTGFuZHNjYXBlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiRGF0YWJhc2UiIHsKICAgICAgICAgICAgICAgIHNoYXBlIEN5bGluZGVyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiUXVldWUiIHsKICAgICAgICAgICAgICAgIHNoYXBlICJQaXBlIgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkNvbXBvbmVudCIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjODViYmYwCiAgICAgICAgICAgICAgICBjb2xvciAjMDAwMDAwCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgIH0KfQ==" }, "views" : { "configuration" : { "branding" : { }, - "lastSavedView" : "SystemContext-001", + "lastSavedView" : "Containers", "metadataSymbols" : "SquareBrackets", "styles" : { "elements" : [ { @@ -287,15 +288,15 @@ }, "elements" : [ { "id" : "9", - "x" : 970, + "x" : 969, "y" : 172 }, { "id" : "10", - "x" : 220, + "x" : 219, "y" : 172 }, { "id" : "11", - "x" : 1720, + "x" : 1719, "y" : 172 } ], "externalSoftwareSystemBoundariesVisible" : false,