# Export Job Service ## Module Orchestrator ## Status IMPLEMENTED ## Description Export job management with service and domain model for orchestrated export operations. ## Implementation Details - **Modules**: `src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Services/`, `src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Export/` - **Key Classes**: - `ExportJobService` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Services/ExportJobService.cs`) - manages export job lifecycle: creation, scheduling, execution tracking, and completion - `ExportJob` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Export/ExportJob.cs`) - export job entity with status, target, format, and schedule - `ExportJobPolicy` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Export/ExportJobPolicy.cs`) - policy controlling export permissions and constraints - `ExportJobTypes` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Export/ExportJobTypes.cs`) - enumeration of supported export types (evidence pack, audit report, snapshot) - `ExportSchedule` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Core/Domain/Export/ExportSchedule.cs`) - scheduling configuration for recurring exports - `LedgerExporter` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Infrastructure/Ledger/LedgerExporter.cs`) - exports audit ledger data for compliance and audit - `ExportJobEndpoints` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.WebService/Endpoints/ExportJobEndpoints.cs`) - REST API for creating, querying, and managing export jobs - **Interfaces**: `ILedgerExporter` (`src/JobEngine/StellaOps.JobEngine/StellaOps.JobEngine.Infrastructure/Ledger/ILedgerExporter.cs`) - **Source**: Feature matrix scan ## E2E Test Plan - [ ] Create an export job via `ExportJobEndpoints` with type=evidence_pack and verify it is persisted with status=Pending - [ ] Execute the export job via `ExportJobService` and verify status transitions: Pending -> Running -> Completed - [ ] Verify export policy enforcement: create an export job with a restricted type and verify `ExportJobPolicy` rejects it - [ ] Schedule a recurring export via `ExportSchedule` and verify the next execution is computed correctly - [ ] Export audit ledger data via `LedgerExporter` and verify the output contains all entries within the specified time range - [ ] Create an export job with retention policy and verify completed exports are cleaned up after expiry - [ ] Query export jobs via `ExportJobEndpoints` with status filter and verify pagination works correctly - [ ] Test export failure: simulate an export error and verify the job transitions to Failed with error details