2.4 KiB
2.4 KiB
Scheduler Exception Lifecycle Worker
Module
Scheduler
Status
IMPLEMENTED
Description
Background worker that monitors exception expiries and triggers policy re-evaluation when exceptions lapse, enforcing time-bounded risk acceptance.
Implementation Details
- Exception Lifecycle Worker:
src/Scheduler/StellaOps.Scheduler.WebService/ExceptionLifecycle/ExceptionLifecycleWorker.cs-- backgroundIHostedServicethat periodically scans for expiring or expired policy exceptions and triggers re-evaluation of affected findings. - Exception Lifecycle Endpoints:
src/Scheduler/StellaOps.Scheduler.WebService/ExceptionLifecycle/ExceptionLifecycleEndpointExtensions.cs-- REST endpoints for querying exception status and managing exception lifecycle. - Exception Lifecycle Contracts:
src/Scheduler/StellaOps.Scheduler.WebService/ExceptionLifecycle/ExceptionLifecycleContracts.cs-- DTOs for exception status, expiry notifications, and lifecycle transitions. - Exception Repository:
src/Scheduler/StellaOps.Scheduler.WebService/ExceptionLifecycle/IExceptionRepository.cs-- persistence contract for policy exceptions with expiry tracking. - Failure Signature Endpoints:
src/Scheduler/StellaOps.Scheduler.WebService/FailureSignatures/FailureSignatureEndpoints.cs-- endpoints for managing failure signatures that may trigger exception expiry. - Webhook Endpoints:
src/Scheduler/StellaOps.Scheduler.WebService/EventWebhooks/EventWebhookEndpointExtensions.cs-- webhook endpoints for notifying external systems of exception lifecycle events. - Tests:
src/Scheduler/__Tests/StellaOps.Scheduler.WebService.Tests/ExceptionLifecycle/ExceptionLifecycleWorkerTests.cs,ExceptionLifecycleEndpointsTests.cs
E2E Test Plan
- Create a policy exception with a 1-minute expiry; after expiry, verify the exception lifecycle worker triggers a re-evaluation event for the affected finding
- Query the exception lifecycle endpoint and verify active exceptions are listed with their remaining TTL
- Verify exception renewal: extend an exception's expiry before it lapses and confirm the worker does not trigger re-evaluation
- Verify webhook notification: configure a webhook endpoint and confirm it receives a notification when an exception expires
- Create multiple exceptions with staggered expiries and verify the worker processes them in expiry order