workspace { name "Plan" model { aiapi = softwareSystem "AI API" "AI capabilities" pdfmerger = softwareSystem "PDF Merger" "" fileconverter = softwareSystem "File Converter" "" aoar = softwareSystem "ActionOrderAndReport" "" sms = softwareSystem "SMS Service" "" personregistry = softwareSystem "Person Registry" "" accesspoint = softwareSystem "Accesspoint" "" simpesaml = softwareSystem "SimpleSAML" "Internal test IDP" customeridp = softwareSystem "Customer IDP" "" coremobile = softwareSystem "Core Mobile App" "" sam = softwareSystem "SAM" "" identityserver = softwareSystem "Identity Server" "" identityserver -> sam "Uses" group "Integration" { integrationplatform = softwareSystem "Integration Platform" "Current integration platform" mule = softwareSystem "Mule" "Legacy integration platform" crossdomain = softwareSystem "Crossdomain Bus" "Event bus for cross-domain communication" } plan = softwareSystem "Plan" "" { planbackend = container "Plan Backend" planfrontend = container "Plan Frontend" planoptimizer = container "Optimizer" planroutingengine = container "Routing Engine" plantile = container "Plan Tile Server" planact = container "Plan Act Mobile Web" planinapi = container "Plan In API" planoutapi = container "Plan Out API" planadminapi = container "Plan Admin API" plandb = container "PSQL Database" " " { tags "Database" } } planfrontend -> planbackend "Uses" planfrontend -> plantile "Uses" planbackend -> plantile "Uses" planbackend -> planoptimizer "Uses" planoptimizer -> planroutingengine "Uses" planbackend -> plandb "Reads from and writes to" planbackend -> planinapi "Uses" planbackend -> planoutapi "Uses" planadminapi -> plandb "Manages tenants in" planact -> planbackend "Uses" plan -> integrationplatform "Uses" plan -> crossdomain "Uses" plan -> personregistry "Uses" plan -> fileconverter "Uses" core = softwareSystem "Core" "" { corebackend = container "Core Backend" corefrontend = container "Core Frontend" migrations = container "Database Migrations" classicwebauthority = container "Classic Web Authority" classicwebperformer = container "Classic Web Performer" classicjobmanager = container "Class Job Manager" classicjobhandler = container "Classic Job Handler" opensilverauthority = container "OpenSilver Authority" opensilverperformer = container "OpenSilver Performer" adminportal = container "Admin Portal" db = container "SQL Database" " " { tags "Database" } outapi = container "Out API" externalapi = container "External API" archivecull = container "Archive & Cull" activitylogapi = container "Activity Log" activitylogdb = container "Postgres Database" { tags "Database" } } eservice = softwareSystem "E-Service" "" { } corefrontend -> corebackend "Uses" corebackend -> db "Reads from and writes to" migrations -> db "Reads from and writes to" classicwebauthority -> corebackend classicwebperformer -> corebackend classicwebauthority -> db "Reads from and writes to" classicwebperformer -> db "Reads from and writes to" opensilverauthority -> classicwebauthority "Uses" opensilverperformer -> classicwebperformer "Uses" corebackend -> activitylogapi "Writes to" classicwebperformer -> classicjobhandler classicwebperformer -> classicjobmanager corebackend -> outapi "Uses" externalapi -> corebackend "Uses" core -> mule "Uses" core -> integrationplatform "Uses" core -> pdfmerger "Uses" core -> fileconverter "Uses" core -> crossdomain "Uses" core -> aiapi "Uses" coremobile -> core "Uses" coremobile -> planact "Uses" core -> aoar "Uses" core -> sms "Uses" eservice -> core "Uses" employ = softwareSystem "Employ" "" { employbackend = container "Employ Backend" employfrontend = container "Employ Frontend" } employ -> crossdomain "Uses" shibboleth = softwareSystem "Shibboleth" "Service Provider" accesspoint -> shibboleth "Directs to federated SSO" shibboleth -> simpesaml "Federated SSO" shibboleth -> customeridp "Federated SSO" commonauth = softwareSystem "Common Authorization" "User authorization." { commonauthapi = container "Common Authorization API" commonauthmigrations = container "Common Authorization DB Migrations" commonauthdb = container "SQL Database" { tags "Database" } } accesspoint -> commonauth "Provides JWT" accesspoint -> identityserver "Uses" commonauth -> corebackend "Uses" commonauth -> employ "Uses" commonauth -> plan "Uses" commonauth -> coremobile "Uses" commonauth -> eservice "Uses" } views { systemContext plan { autolayout include * } container plan { autolayout include * } styles { element "Person" { color #ffffff fontSize 22 shape Person } element "Customer" { background #08427b } element "Bank Staff" { background #999999 } element "Software System" { background #1168bd color #ffffff } element "Existing System" { background #999999 color #ffffff } element "Container" { background #438dd5 color #ffffff } element "Web Browser" { shape WebBrowser } element "Mobile App" { shape MobileDeviceLandscape } element "Database" { shape Cylinder } element "Component" { background #85bbf0 color #000000 } element "Failover" { opacity 25 } } } }