save checkpoint
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# S3 Object Lock (WORM Retention) for Evidence Locker
|
||||
|
||||
## Module
|
||||
EvidenceLocker
|
||||
|
||||
## Status
|
||||
IMPLEMENTED
|
||||
|
||||
## Description
|
||||
Object Lock configuration in EvidenceLockerOptions with mode, default retention days, legal hold; enforcement headers in S3 storage for WORM retention and legal hold behavior with startup validation.
|
||||
|
||||
## Implementation Details
|
||||
- **Modules**: `src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Storage/`, `src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Core/Configuration/`
|
||||
- **Key Classes**:
|
||||
- `S3EvidenceObjectStore` (`src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Storage/S3EvidenceObjectStore.cs`) - S3 storage with Object Lock headers for WORM retention
|
||||
- `EvidenceLockerOptions` (`src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Core/Configuration/EvidenceLockerOptions.cs`) - configuration including Object Lock mode, retention days, and legal hold settings
|
||||
- `EvidenceObjectStore` (`src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Core/Storage/EvidenceObjectStore.cs`) - base object store abstraction
|
||||
- `StorageKeyGenerator` (`src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Storage/StorageKeyGenerator.cs`) - generates storage keys for evidence objects
|
||||
- **Interfaces**: `IEvidenceLockerStorage`
|
||||
- **Source**: SPRINT_20260112_002_EVIDENCE_evidence_locker_audit_pack_hardening.md
|
||||
|
||||
## E2E Test Plan
|
||||
- [ ] Configure `EvidenceLockerOptions` with Object Lock mode=COMPLIANCE and retention=365 days and verify `S3EvidenceObjectStore` applies WORM headers on write
|
||||
- [ ] Verify stored objects cannot be deleted before retention period expires
|
||||
- [ ] Enable legal hold via `EvidenceLockerOptions` and verify objects are locked regardless of retention period
|
||||
- [ ] Verify startup validation rejects invalid Object Lock configurations (e.g., retention days < 1)
|
||||
- [ ] Verify `S3EvidenceObjectStore` sends correct S3 headers (x-amz-object-lock-mode, x-amz-object-lock-retain-until-date, x-amz-object-lock-legal-hold)
|
||||
- [ ] Verify Object Lock mode=GOVERNANCE allows deletion with proper override permissions
|
||||
Reference in New Issue
Block a user