Files
nplus/dsl/workspace.dsl
2025-01-24 16:18:47 +01:00

170 lines
6.1 KiB
Plaintext

workspace {
!identifiers hierarchical
model {
properties {
"structurizr.groupSeparator" "/"
}
/* **************************************************************
* Services and Components running in the K8s cluster *
************************************************************** */
group "Kubernetes Cluster" {
ingressController = softwareSystem "Kubernetes Ingress Controller" "Layer 7 Load Balancer" "Kubernetes - ds"
clusterIssuer = softwareSystem "Cert Manager Cluster Issuer" "provides certificates" "Kubernetes - crd"
group "Namespace" {
!include "environment.dsl"
group "Instance" {
!include "database.dsl"
!include "rs.dsl"
!include "nstl.dsl"
group "nscale Application Layer Cluster" {
!include "nappl.dsl"
!include "nappljobs.dsl"
!include "pipelinercm.dsl"
!include "clusterService.dsl"
}
!include "web.dsl"
!include "pipelinerac.dsl"
!include "cmis.dsl"
!include "webdav.dsl"
!include "ilm.dsl"
!include "mon.dsl"
!include "pam.dsl"
!include "sharepoint.dsl"
!include "adminserver.dsl"
!include "application.dsl"
}
}
}
/* **************************************************************
* Client Applications, accessing the Services and Components *
************************************************************** */
adminclient = softwareSystem "nscale Administrator" "Eclipse RCP Administrator Client" {
tags "richclient, nscale"
-> adminserver.l3lb "Remote Management" "RMS and https Protocols"
}
mobileclient = softwareSystem "nscale Mobile" "Rich Mobile Client" {
tags "mobileclient, nscale"
-> ingressController "https /nscalealinst1"
}
cockpitclient = softwareSystem "nscale Cockpit" "Rich Windows Client" {
tags "richtclient, nscale"
-> ingressController "https /nscalealinst1"
}
webclient = softwareSystem "nscale Web" "Thin Web Client" {
tags "webclient, nscale"
-> ingressController "https /nscale_web"
}
/* **************************************************************
* Users running the clients above *
************************************************************** */
user = person "User" {
description "uses the Business Applications running in the Environment"
-> mobileclient "use"
-> cockpitclient "use"
-> webclient "use"
}
admin = person "Admin" {
description "Maintains and Operates the Environment"
-> adminclient "use"
-> nplus.davserver "mount"
-> nplus.toolbox "use"
}
/* **************************************************************
* 3rd Party Applications accessing the Services and Components *
************************************************************** */
sap = softwareSystem "SAP" "SAP Server" {
-> ingressController "consume AL" "SAP Archive Link Protocol"
-> ingressController "consume ILM" "SAP Information Lifecycle Management Protocol"
}
o365sp = softwareSystem "SharePoint" "SharePoint Server" {
}
/* when you run a SAP System, you most likely also want to access it for replication */
nappl.replicaset.main -> sap "consume SNC" "SAP SNC Access"
app = softwareSystem "3rd Party Software" "Any Application with Access Rights" {
-> ingressController "AC" "nscale Advanced Connect API
-> ingressController "REST" "nscale REST API"
-> ingressController "CMIS REST" "cmis REST API"
-> ingressController "CMIS SOAP" "cmis SOAP API"
-> ingressController "Pipeliner DAV" "DAV Payload Dropoff Service"
}
/* **************************************************************
* 3rd Party Identity and Authentication Services *
************************************************************** */
idp = softwareSystem "Identity Provider" {
description "Provider or Broker for Identity Information and SSO Services"
-> nappl "Authorize" "Single Sign On with optional Multi Factor" "saml, openid"
-> nappljobs "Import" "Periodic Import of Account / Group Information via LDAP"
user -> this "authenticate"
}
}
views {
theme https://static.structurizr.com/themes/kubernetes-v0.3/theme.json
# As soon as we use our own views, all default views are gone...
!include "views.dsl"
styles {
element "Person" {
shape Person
}
element "Kubernetes - svc" {
shape hexagon
}
element "Database" {
background #707070
color #ffffff
shape cylinder
}
element "Kubernetes - pvc" {
shape cylinder
}
element "nscale" {
color #FFFFFF
background #11a63c
}
element "nplus" {
color #FFFFFF
background #424c63
}
element "planned" {
opacity 30
}
element "mobileclient" {
shape "MobileDeviceLandscape"
}
element "richclient" {
shape "Window"
}
element "webclient" {
shape "WebBrowser"
}
element "Group" {
color #ff00ff
}
}
}
}