@@ -91,7 +91,7 @@ C4Context
9191 System_Ext(conforma, "Conforma", "Enterprise Contract policy validation tool")
9292 System_Ext(policyRepo, "Policy Repository", "Git repository or storage containing EC policies")
9393
94- Rel(user, trustify, "Request Compliance <br/>View compliance status", "API/GUI")
94+ Rel(user, trustify, "Request compliance <br/>View compliance status", "API/GUI")
9595 Rel(trustify, conforma, "Executes policy validation", "Spawn Process")
9696 Rel(conforma, policyRepo, "Fetches policies", "Git/HTTPS")
9797
@@ -112,7 +112,7 @@ C4Container
112112
113113
114114 Container_Boundary(trustify, "Trustify System") {
115- Container(webui, "Web UI", "React/TypeScript ", "Trustify GUI")
115+ Container(webui, "Web UI", "Rust/Actix ", "Trustify GUI")
116116 Container(api, "API Gateway", "Actix-web", "REST API endpoints for SBOM <br/> and compliance operations")
117117 ContainerDb(postgres, "PostgreSQL", "DBMS", "Stores SBOM metadata, relationships, <br/>and EC validation results")
118118 Container(ecModule, "EC Validation Module", "Rust", "Orchestrates Conforma CLI<br/>execution and result persistence")
@@ -121,18 +121,20 @@ C4Container
121121 }
122122
123123 Container_Boundary(conforma, "Conforma System") {
124+ Container(ecWrapper, "EC Wrapper", "Rust/Actix", "HTTP Wrapper")
124125 System_Ext(conforma, "Conforma CLI", "External policy validation tool")
125126 }
126127
127128 Container_Boundary(policyRepo, "Policy System") {
128129 System_Ext(policyRepo, "Policy Repository", "Git repository with EC policies")
129130 }
130131
131- Rel(user, webui, "Views compliance status", "HTTPS ")
132- Rel(user, api, "Views compliance status", "RESTful ")
133- Rel(webui, api, "API calls", "JSON/HTTPS ")
132+ Rel(user, webui, "Views compliance status", "HTTP API ")
133+ Rel(user, api, "Views compliance status", "HTTP API ")
134+ Rel(webui, api, "API calls", "JSON/HTTP API ")
134135 Rel(api, ecModule, "Triggers validation", "Function call")
135- Rel(ecModule, conforma, "Executes validation", "CLI/Process")
136+ Rel(ecModule, ecWrapper, "POST /validate {SBOM} {policy}", "HTTP API")
137+ Rel(ecWrapper, conforma, "ec validate input {SBOM} {policy}", "Spawned command")
136138 Rel(ecModule, postgres, "Saves validation<br/>results", "SQL")
137139 Rel(ecModule, storage, "Stores EC reports", "Function call")
138140 Rel(storage, s3, "Persists reports", "S3 API")
@@ -141,6 +143,7 @@ C4Container
141143 UpdateRelStyle(user, webui, $offsetX="-60", $offsetY="30")
142144 UpdateRelStyle(user, api, $offsetX="-60", $offsetY="-50")
143145 UpdateRelStyle(webui, api, $offsetX="-40", $offsetY="10")
146+ UpdateRelStyle(ecModule, ecWrapper, $offsetX="-50", $offsetY="-20")
144147 UpdateRelStyle(ecModule, postgres, $offsetX="-40", $offsetY="10")
145148 UpdateRelStyle(storage, s3, $offsetX="-40", $offsetY="10")
146149
@@ -165,7 +168,7 @@ C4Component
165168 }
166169 Deployment_Node(external, "External System") {
167170 Deployment_Node(trustifyPod, "Trustify Pod") {
168- Component(conformaECWrapper , "EC Wrapper", "HTTP API/Webhook")
171+ Component(ecWrapper , "EC Wrapper", "Actix-web handlers ", "HTTP API/Webhook")
169172 }
170173 Deployment_Node(conformaPod, "Conforma Pod") {
171174 System_Ext(conforma, "Conforma CLI", "Enterprise Contract validation tool")
@@ -183,15 +186,18 @@ C4Component
183186 Rel(ecEndpoints, ecService, "validate_sbom() / get_ec_report()", "Function call")
184187 Rel(ecService, policyManager, "get_policy_config()", "Function call")
185188 Rel(policyManager, postgres, "SELECT ec_policies", "SQL")
186- Rel(ecService, conformaECWrapper, "POST /api/v1/validation", "HTTP")
187- Rel(conformaECWrapper, conforma, "ec validate", "Process spawn")
189+ Rel(ecService, ecWrapper, "POST /api/v1/validation", "HTTP + callback URL")
190+ Rel(ecWrapper, conforma, "ec validate", "Process spawn")
191+ Rel(ecWrapper, ecEndpoints, "POST /validate/job/{id}", "JSON/HTTPS")
188192 Rel(ecService, resultParser, "parse_output()", "Function call")
189193 Rel(ecService, resultPersistence, "save_results()", "Function call")
190194 Rel(resultPersistence, postgres, "INSERT ec_validation_results", "SQL")
191195 Rel(ecService, s3, "Store EC report", "S3 API")
192196
193197 UpdateRelStyle(api, ecEndpoints, $offsetX="-50", $offsetY="-50")
194198 UpdateRelStyle(ecEndpoints, ecService, $offsetX="-60", $offsetY="+40")
199+ UpdateRelStyle(ecService, ecWrapper, $offsetX="-20", $offsetY="10")
200+ UpdateRelStyle(ecWrapper, ecEndpoints, $offsetX="20", $offsetY="-40")
195201 UpdateRelStyle(ecService, resultParser, $offsetX="-60", $offsetY="+0")
196202 UpdateRelStyle(ecService, resultPersistence, $offsetX="-60", $offsetY="+80")
197203
0 commit comments