1.7 KiB
1.7 KiB
Human Approval Attestation Service (stella.ops/human-approval@v1 predicate)
Module
Scanner
Status
IMPLEMENTED
Description
Generates DSSE-signed attestations for human approval decisions with 30-day TTL auto-expiry. Uses stella.ops/human-approval@v1 predicate. Integrates with the Approvals API (POST/GET/DELETE /api/v1/scans/{scanId}/approvals).
Implementation Details
- Attestation Service:
src/Scanner/StellaOps.Scanner.WebService/Services/IHumanApprovalAttestationService.cs-IHumanApprovalAttestationService,HumanApprovalAttestationInput,HumanApprovalAttestationResultsrc/Scanner/StellaOps.Scanner.WebService/Services/HumanApprovalAttestationService.cs- Generates DSSE-signed attestations with 30-day TTL
- Contracts:
src/Scanner/StellaOps.Scanner.WebService/Contracts/HumanApprovalStatement.cs-stella.ops/human-approval@v1predicate model
- API Endpoints:
src/Scanner/StellaOps.Scanner.WebService/Endpoints/ApprovalEndpoints.cs-ApprovalEndpointswithCreateApprovalRequest,RevokeApprovalRequest,ApprovalResponse,ApprovalListResponse
E2E Test Plan
- Create a human approval via
POST /api/v1/scans/{scanId}/approvalsand verify a DSSE-signed attestation is generated - Verify the attestation uses
stella.ops/human-approval@v1predicate type - Verify the attestation includes the approver identity, timestamp, and scope
- List approvals via
GET /api/v1/scans/{scanId}/approvalsand verify active approvals are returned - Verify 30-day TTL auto-expiry removes expired approvals
- Revoke an approval via
DELETE /api/v1/scans/{scanId}/approvals/{approvalId}and verify it is removed