1.6 KiB
1.6 KiB
Approval Gateway with Multi-Approver and Separation of Duties
Module
ReleaseOrchestrator
Status
IMPLEMENTED
Description
Approval workflow engine enforcing separation of duties (requester != approver), multi-approver requirements (N of M), group-based eligibility checking, approval history tracking, notification integration, and governance controls for release promotions.
Implementation Details
- Modules:
src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Approval/ - Key Classes:
ApprovalGateway(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Approval/ApprovalGateway.cs) - approval workflow engine with multi-approver and group eligibilitySeparationOfDutiesEnforcer(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Promotion/Approval/SeparationOfDutiesEnforcer.cs) - enforces requester != approver constraint
- Interfaces:
IApprovalGateway,ISeparationOfDutiesEnforcer - Source: SPRINT_20260110_106_002_PROMOT_approval_gateway.md
E2E Test Plan
- Submit an approval request and verify
SeparationOfDutiesEnforcerrejects the requester from self-approving - Verify multi-approver: configure N of M requirement and verify approval is granted only after N approvals
- Verify group eligibility: configure group-based approval and verify only group members can approve
- Verify approval history: approve a request and confirm the approval record is persisted with timestamps
- Verify rejection: deny an approval and confirm the promotion is blocked