model { developer = actor 'Developer' { description 'The regular user of the platform' } edp = system 'EDP' { container ui 'Backstage' { description 'Deeveloper Portal' style { icon tech:react shape browser } } container forgejo 'CI/CD Service' { description ' Fully managed DevOps Platfrom offering capabilities like code version controling collaboration and ticketing and security scanning ' component forgejo 'Forgejo' { technology 'Golang' icon tech:go } component forgejoRunner 'CI Runner'{ technology 'Golang' icon tech:go style { multiple true } } forgejoRunner -> forgejo 'executes pipelines' } container keycloak 'Keycloak' { description ' Single Sign On for all EDP products ' component keycloak 'Keycloak' { technology 'Keycloak' icon tech:java } component postgres 'Postgres' { technology 'Postgresql' icon tech:postgresql } // -> db 'reads/writes' } container crossplane 'Crossplane' { description 'Managing cloud infrastructure' component crossplane 'Crossplane' component crossplaneFunction 'Function Patch and Transform' component crossplaneRbacManager 'RBAC Manager' component providerArgoCD 'ArgoCD Provider' component providerKind 'Kind Provider' component providerShell 'Shell Provider' } /*db = component 'Database' { icon tech:postgresql style { shape storage } }*/ // UI requests data from the Backend // ui -> backend 'fetches via HTTPS' } developer -> ui 'manages project' developer -> forgejo 'manages code' developer -> keycloak 'authenticates' } views { view overview { title 'Landscape view' include * } view edp of edp { title 'Context view' include * style * { opacity 25% } style developer { color muted } } view keycloak of keycloak { include * } view forgejo of forgejo { include * } view crossplane of crossplane { include * } }