Skip to content

Commit f9f50d5

Browse files
committed
Fix typos
1 parent 06ef31a commit f9f50d5

File tree

1 file changed

+95
-5
lines changed

1 file changed

+95
-5
lines changed

docs/adrs/00012-enterprise-contract-integration.md

Lines changed: 95 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ C4Context
7979
Rel(user, trustify, "Request Compliance<br/>View compliance status", "API/GUI")
8080
Rel(trustify, conforma, "Executes policy validation", "Spawn Process")
8181
Rel(conforma, policyRepo, "Fetches policies", "Git/HTTPS")
82-
Rel(trustify, s3, "I3s", S3/Minio Storager, trustify, $offsetX="-30", $offsetY="+20")
82+
Rel(trustify, s3, "3s", S3/Minio Storager, trustify, $offsetX="-30", $offsetY="+20")
8383
8484
UpdateRelStyle(trustify, conforma, $offsetX="-40")
8585
UpdateRelStyle(user, trustify, $offsetX="-50", $offsetY="20")
@@ -102,7 +102,7 @@ C4Container
102102
ContainerDb(postgres, "PostgreSQL", "DBMS", "Stores SBOM metadata, relationships, <br/>and EC validation results")
103103
Container(ecModule, "EC Validation Module", "Rust", "Orchestrates Conforma CLI<br/>execution and result persistence")
104104
ContainerDb(s3, "Object Storage", "S3/Minio", "Stores SBOM documents and EC reports")
105-
Container(storage, "Storage Service", "Rust", "Manages document storage<br/>(SBOMs, policies results)")
105+
Container(storage, "Storage Service", "Rust", "Manages document storage<br/>(SBOMs, policy results)")
106106
}
107107
108108
Container_Boundary(conforma, "Conforma System") {
@@ -157,7 +157,7 @@ C4Component
157157
}
158158
159159
160-
Rel(api, ecEndpoints, "POST /sboms/{id}/ec-validate,<br/>GET /sbms/{id}/ec-report", "JSON/HTTPS")
160+
Rel(api, ecEndpoints, "POST /sboms/{id}/ec-validate,<br/>GET /sboms/{id}/ec-report", "JSON/HTTPS")
161161
Rel(ecEndpoints, ecService, "validate_sbom()<br/> get_ec_report()", "Function call")
162162
Rel(ecService, policyManager, "get_policy_config()", "Function call")
163163
Rel(ecService, conformaExecutor, "request_validation()", "Function call")
@@ -172,6 +172,96 @@ C4Component
172172
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="2")
173173
```
174174

175+
```mermaid
176+
sequenceDiagram
177+
autonumber
178+
actor User
179+
participant UI as Trustify UI
180+
participant API as Trustify API
181+
participant VS as Validation Service
182+
participant PM as Policy Manager
183+
participant DB as PostgreSQL
184+
participant S3 as Object Storage
185+
participant Conf as Conforma CLI
186+
187+
User->>UI: Request SBOM validation for policy
188+
UI->>API: POST /api/v2/sbom/{sbom_id}/validate
189+
Note over UI,API: Request body: {policy_id}
190+
191+
API->>VS: validate_sbom_against_policy(sbom_id, policy_id)
192+
193+
rect rgb(42, 48, 53)
194+
Note over VS,PM: Policy Resolution Phase
195+
VS->>PM: get_policy_configuration(policy_id)
196+
PM->>DB: SELECT * FROM ec_policies WHERE id = ?
197+
DB-->>PM: Policy configuration
198+
alt Policy not found
199+
PM-->>VS: Error: PolicyNotFound
200+
VS-->>API: 404 Not Found
201+
API-->>UI: Policy not found error
202+
UI-->>User: Display error: "Policy does not exist"
203+
end
204+
PM-->>VS: PolicyConfig {name, policy_ref, version}
205+
end
206+
207+
rect rgb(68, 66, 62)
208+
Note over VS,S3: SBOM Retrieval Phase
209+
VS->>DB: SELECT * FROM sbom WHERE id = ?
210+
DB-->>VS: SBOM metadata
211+
alt SBOM not found
212+
VS-->>API: 404 Not Found
213+
API-->>UI: SBOM not found error
214+
UI-->>User: Display error: "SBOM does not exist"
215+
end
216+
217+
VS->>S3: retrieve_sbom_document(sbom_id)
218+
S3-->>VS: SBOM document (JSON/XML)
219+
end
220+
221+
rect rgb(42, 48, 53)
222+
Note over VS,Conf: Validation Execution Phase
223+
VS->>VS: Create temp files for SBOM and policy
224+
VS->>Conf: spawn: conforma validate<br/>--policy={policy_ref}<br/>--sbom={sbom_file}<br/>--output=json
225+
226+
alt Validation passes
227+
Conf-->>VS: Exit code: 0<br/>JSON: {result: "PASS", violations: []}
228+
VS->>VS: Parse validation results
229+
VS->>DB: INSERT INTO ec_validation_results<br/>(sbom_id, policy_id, status='passed',<br/>violations=[], timestamp)
230+
DB-->>VS: result_id
231+
VS->>S3: store_validation_report(result_id, full_json)
232+
S3-->>VS: report_url
233+
VS->>DB: UPDATE ec_validation_results<br/>SET report_url = ?
234+
DB-->>VS: Updated
235+
VS-->>API: ValidationResult {status: "passed",<br/>violations: [], report_url}
236+
API-->>UI: 200 OK {passed: true, violations: 0}
237+
UI-->>User: ✓ SBOM passes policy validation
238+
239+
else Validation fails with violations
240+
Conf-->>VS: Exit code: 1<br/>JSON: {result: "FAIL",<br/>violations: [{rule, severity, message}]}
241+
VS->>VS: Parse validation results
242+
VS->>DB: INSERT INTO ec_validation_results<br/>(sbom_id, policy_id, status='failed',<br/>violations=json, timestamp)
243+
DB-->>VS: result_id
244+
VS->>S3: store_validation_report(result_id, full_json)
245+
S3-->>VS: report_url
246+
VS->>DB: UPDATE ec_validation_results<br/>SET report_url = ?
247+
DB-->>VS: Updated
248+
VS-->>API: ValidationResult {status: "failed",<br/>violations: [...], report_url}
249+
API-->>UI: 200 OK {passed: false, violations: [...]}
250+
UI-->>User: ✗ SBOM violates policy<br/>Show violation details
251+
252+
else Conforma execution error
253+
Conf-->>VS: Exit code: 2<br/>stderr: "Policy file not found"
254+
VS->>DB: INSERT INTO ec_validation_results<br/>(sbom_id, policy_id, status='error',<br/>error_message=stderr)
255+
DB-->>VS: result_id
256+
VS-->>API: Error: ValidationExecutionFailed
257+
API-->>UI: 500 Internal Server Error
258+
UI-->>User: Display error: "Validation failed to execute"
259+
end
260+
end
261+
262+
VS->>VS: Cleanup temp files
263+
```
264+
175265
### Data Model
176266

177267
Two new tables:
@@ -409,7 +499,7 @@ When Conforma REST API becomes available:
409499

410500
**Cons**: Additional infrastructure, network latency, complexity for simple use case
411501

412-
**Verdict**: Deferred - could be future enhancement for large-scale deployments
502+
**Verdict**: Deferred - could be future enhancements for large-scale deployments
413503

414504
### 3. Embedded WASM Module
415505

@@ -460,7 +550,7 @@ When Conforma REST API becomes available:
460550
- [ ] Implement validation results display with summary statistics
461551
- [ ] Build violations list component with expandable details
462552
- [ ] Create validation history timeline view
463-
- [ ] Add policy selectreference management UI (admin pages)
553+
- [ ] Add policy reference management UI (admin pages)
464554
- [ ] Policy reference list view with search/filter (shows name, external URL, type)
465555
- [ ] Policy reference create/edit form (Git URL, OCI ref, auth config)
466556
- [ ] Policy reference delete confirmation

0 commit comments

Comments
 (0)