Skip to content

Commit 9883b36

Browse files
committed
Consolidate trade-offs
1 parent 63be984 commit 9883b36

File tree

1 file changed

+13
-38
lines changed

1 file changed

+13
-38
lines changed

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

Lines changed: 13 additions & 38 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, "3s", S3/Minio Storager, trustify, $offsetX="-30", $offsetY="+20")
82+
Rel(trustify, s3, "Stores reports", "S3 API")
8383
8484
UpdateRelStyle(trustify, conforma, $offsetX="-40")
8585
UpdateRelStyle(user, trustify, $offsetX="-50", $offsetY="20")
@@ -446,43 +446,19 @@ modules/ec/
446446
6. **Extensibility**: Module design allows future enhancement (webhooks, notifications, etc.)
447447
7. **Open Source**: Conforma is open-source and actively maintained
448448

449-
### Negative
449+
### Trade-offs and Risks
450450

451-
1. **External Dependency**: Requires Conforma CLI to be installed on Trustify servers
452-
2. **Process Overhead**: Spawning external processes has performance implications
453-
3. **Error Handling Complexity**: Must handle CLI failures, timeouts, and malformed output
454-
4. **Version Management**: Need to track Conforma version compatibility
455-
5. **Resource Usage**: Multiple concurrent validations may consume significant resources
456-
6. **No Native API**: Until Conforma provides an API the CLI integration is less efficient than native API integration.
457-
458-
### Risks and Mitigations
459-
460-
| Risk | Mitigation |
461-
| ----------------------------------- | --------------------------------------------------------------- |
462-
| Conforma CLI unavailable/crashes | Implement health checks, graceful error handling, retry logic |
463-
| Long execution times block requests | Use async execution with configurable timeouts (default: 5 min) |
464-
| Large SBOMs cause memory issues | Stream SBOM to temp file, pass file path to Conforma |
465-
| CLI injection attacks | Sanitize all inputs, use process args array (not shell strings) |
466-
| Version incompatibility | Document required Conforma version, validate on startup |
467-
| Storage costs for reports | Implement retention policies, compress reports |
468-
469-
### Migration Path
470-
471-
When Conforma REST API becomes available:
472-
473-
1. Implement API client alongside CLI executor
474-
2. Add configuration flag to select execution mode
475-
3. Gradually migrate workloads to API mode
476-
4. Deprecate CLI mode after stability period
477-
5. Remove CLI executor in future major version
478-
479-
### Performance Considerations
480-
481-
- **Concurrent Limits**: Implement semaphore to limit parallel Conforma executions (default: 5)
482-
- **Timeout**: Default 5-minute timeout, configurable per policy
483-
- **Caching**: Cache policy files to avoid repeated Git fetches
484-
- **Async**: All operations non-blocking using Tokio runtime
485-
- **Streaming**: Stream results incrementally for large reports
451+
| Trade-off / Risk | Impact | Mitigation |
452+
| ------------------------------- | ---------------------------------------- | -------------------------------------------------------------------------- |
453+
| External CLI dependency | Requires Conforma installed on servers | Health checks, graceful error handling, retry logic |
454+
| Process spawning overhead | Performance implications per validation | Async execution with configurable timeouts (default: 5 min) |
455+
| Error handling complexity | CLI failures, timeouts, malformed output | Distinguish validation failures from execution errors; actionable messages |
456+
| Version management | Conforma version compatibility | Document required version, validate on startup |
457+
| Resource usage under load | Concurrent validations consume resources | Semaphore limits (default: 5), queueing, monitoring |
458+
| No native API yet | CLI less efficient than REST integration | Adapter pattern for future API migration (see Phase 3) |
459+
| Large SBOMs cause memory issues | Out-of-memory during validation | Stream SBOM to temp file, pass file path to Conforma |
460+
| CLI injection attacks | Security vulnerability | Sanitize all inputs, use process args array (not shell strings) |
461+
| Storage costs for reports | Growing storage over time | Retention policies, report compression |
486462

487463
## Alternatives Considered
488464

@@ -556,7 +532,6 @@ When Conforma REST API becomes available:
556532
- [ ] Policy reference create/edit form (Git URL, OCI ref, auth config)
557533
- [ ] Policy reference delete confirmation
558534
- [ ] Test policy connectivity button (validate URL is reachable)
559-
- [ ] Policy delete confirmation
560535
- [ ] Add report download functionality (JSON/HTML)
561536
- [ ] Create detailed report preview modal
562537
- [ ] Implement loading indicators for validation execution

0 commit comments

Comments
 (0)