Files
git.stella-ops.org/docs/airgap/importer-scaffold.md
master 79b8e53441
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Add new features and tests for AirGap and Time modules
- 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.
2025-11-20 23:29:54 +02:00

2.2 KiB

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

# 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).