3.4 KiB
3.4 KiB
Network Intent Validator (Air-Gap Orchestrator Controls)
Module
Orchestrator
Status
IMPLEMENTED
Description
NetworkIntentValidator enforces air-gap network policies on orchestrator jobs, preventing egress in sealed mode. Includes MirrorJobTypes and MirrorOperationRecorder for offline mirror operations.
Implementation Details
- Modules:
src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/AirGap/,src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/,src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Mirror/ - Key Classes:
NetworkIntentValidator(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/AirGap/NetworkIntentValidator.cs) - validates job network intent against air-gap policy, blocking egress requests in sealed modeStalenessValidator(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/AirGap/StalenessValidator.cs) - validates data freshness in air-gapped environments, ensuring cached data is within acceptable staleness boundsNetworkIntent(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/NetworkIntent.cs) - declares the network intent of a job (egress, ingress, local-only)SealingStatus(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/SealingStatus.cs) - enum for air-gap sealing state (Sealed, Unsealed, Transitioning)StalenessConfig(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/StalenessConfig.cs) - configuration for acceptable data staleness in air-gap modeStalenessValidationResult(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/StalenessValidationResult.cs) - result of staleness validationBundleProvenance(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/AirGap/BundleProvenance.cs) - provenance tracking for air-gap bundlesMirrorBundle(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Mirror/MirrorBundle.cs) - bundle model for offline mirror operationsMirrorJobTypes(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Mirror/MirrorJobTypes.cs) - types of mirror jobs (sync, verify, prune)MirrorOperationRecorder(src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Mirror/MirrorOperationRecorder.cs) - records mirror operations for audit trail
- Interfaces: None (uses concrete implementations)
- Source: Feature matrix scan
E2E Test Plan
- Set
SealingStatusto Sealed and submit a job with egress intent; verifyNetworkIntentValidatorrejects it - Set
SealingStatusto Unsealed and submit a job with egress intent; verify it is allowed - Validate staleness: set
StalenessConfigmax staleness to 24 hours and verify data older than 24 hours is rejected byStalenessValidator - Create a mirror job with type=sync and verify
MirrorOperationRecorderrecords the operation - Verify bundle provenance: create a
MirrorBundleand verifyBundleProvenancecaptures origin, sync timestamp, and hash - Transition sealing status from Unsealed to Sealed and verify in-flight egress jobs are blocked
- Submit a local-only
NetworkIntentjob in sealed mode and verify it is allowed - Verify staleness config: set different staleness thresholds per data type in
StalenessConfigand verify per-type enforcement