You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.2 KiB
Plaintext

@startuml
!include <C4/C4_Container.puml>
!include <tupadr3/devicons/mysql>
!include <tupadr3/devicons/php>
!include <tupadr3/devicons/go>
!include <tupadr3/font-awesome/users>
!include <tupadr3/font-awesome/database>
Person_Ext(CommunityMember, "Community Member", $sprite="users")
System_Boundary(Signer, "Signer") {
Container(SignerServer, "Signer Server", "Go binary", "Performs certificate signing", $sprite="go")
ContainerDb(SignerDB, "Certificate repository", "Key-Value DB", $sprite="database")
}
System_Boundary(Signer2, "Other Signer") {
Container_Ext(SignerServer2, "Signer Server")
}
System_Boundary(WebDB, "WebDB") {
Container_Ext(WebDBApp, "WebDB application", "PHP", "Provides the user interface for requesting certificates", $sprite="php")
Container_Ext(SignerClient, "Signer Client", "Go binary", "Handle signing request", $sprite="go")
ContainerDb_Ext(DB, "Database", "MySQL/MariaDB", "Hold certificate requests and certificates", $sprite="mysql")
}
Rel(CommunityMember, WebDBApp, "Uses", "https")
Rel(WebDBApp, DB, "Uses")
Rel(SignerClient, DB, "Uses")
Rel_R(SignerClient, SignerServer, "Uses", "Serial binary protocol")
Rel(SignerServer, SignerDB, "Uses")
BiRel_R(SignerServer, SignerServer2, "Synchronize", "TLS")
@enduml