Add new features and tests for AirGap and Time modules
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Introduced `SbomService` tasks documentation. - Updated `StellaOps.sln` to include new projects: `StellaOps.AirGap.Time` and `StellaOps.AirGap.Importer`. - Added unit tests for `BundleImportPlanner`, `DsseVerifier`, `ImportValidator`, and other components in the `StellaOps.AirGap.Importer.Tests` namespace. - Implemented `InMemoryBundleRepositories` for testing bundle catalog and item repositories. - Created `MerkleRootCalculator`, `RootRotationPolicy`, and `TufMetadataValidator` tests. - Developed `StalenessCalculator` and `TimeAnchorLoader` tests in the `StellaOps.AirGap.Time.Tests` namespace. - Added `fetch-sbomservice-deps.sh` script for offline dependency fetching.
This commit is contained in:
38
docs/airgap/importer-scaffold.md
Normal file
38
docs/airgap/importer-scaffold.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# AirGap Importer Scaffold (prep for AIRGAP-IMP-56-001/56-002/58-002)
|
||||
|
||||
## Scope for prep
|
||||
- Provide minimal project and test scaffolds so downstream implementation can wire DSSE, TUF, Merkle validation, and audit logging without redoing structure.
|
||||
- Capture trust-root inputs required (bundle path, signing keys, allowed algorithms, validity window).
|
||||
|
||||
## What landed (2025-11-20)
|
||||
- New project: `src/AirGap/StellaOps.AirGap.Importer/StellaOps.AirGap.Importer.csproj` (net10.0, deterministic-only dependencies).
|
||||
- Planning layer: `BundleImportPlanner` emits deterministic plan steps and early validation reasons (`bundle-path-required`, `trust-roots-required`, `invalid-trust-window`).
|
||||
- Contracts: `TrustRootConfig` record carries root bundle path, trusted key fingerprints, allowed algorithms, and optional validity window.
|
||||
- Validation shape: `BundleValidationResult` centralises success/failure reasons for replay/capture.
|
||||
- Tests: `tests/AirGap/StellaOps.AirGap.Importer.Tests` validate planner behavior without external feeds.
|
||||
|
||||
## Updates (2025-11-20)
|
||||
- Added DSSE verifier (RSA-PSS/SHA256) with PAE encoding + trusted key fingerprint checks.
|
||||
- Added TUF metadata validator (root/snapshot/timestamp) with hash consistency guard.
|
||||
- Added deterministic Merkle root calculator for bundle object staging.
|
||||
- Expanded tests for DSSE, TUF, Merkle helpers.
|
||||
- Added trust store + root rotation policy (dual approval) and import validator that coordinates DSSE/TUF/Merkle/rotation checks.
|
||||
|
||||
## Next implementation hooks
|
||||
- Replace placeholder plan with actual DSSE + TUF verifiers; keep step ordering stable.
|
||||
- Feed trust roots from sealed-mode config and Evidence Locker bundles (once available) before allowing imports.
|
||||
- Record audit trail for each plan step (success/failure) and a Merkle root of staged content.
|
||||
|
||||
## Determinism/air-gap posture
|
||||
- No network dependencies; only BCL used.
|
||||
- Tests use cached local NuGet feed (`local-nugets/`).
|
||||
- Plan steps are ordered list; do not reorder without bumping downstream replay expectations.
|
||||
|
||||
## How to consume
|
||||
```bash
|
||||
# run tests offline once feed is hydrated
|
||||
DOTNET_NOLOGO=1 dotnet test tests/AirGap/StellaOps.AirGap.Importer.Tests/StellaOps.AirGap.Importer.Tests.csproj --no-build
|
||||
```
|
||||
|
||||
## Owners
|
||||
- AirGap Importer Guild / Security Guild (per sprint 0510).
|
||||
Reference in New Issue
Block a user