Files
git.stella-ops.org/docs/features/unchecked/scheduler/scheduler-exception-lifecycle-worker.md

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 -- background IHostedService that 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