Files
2026-08-17 22:23:10 +02:00

19 lines
1.1 KiB
JSON

{
"feature_id": "F-028",
"agent": "qa",
"verdict": "APPROVED",
"summary": "QA approved. F-028 acceptance criteria covered by tests and green checks.",
"evidence": [
"rate-limiter.test.ts covers reject above limit, retry-after, and window reset",
"cd project && npm run lint/typecheck/build/test passed",
"DB integration migrations suite passed: 14 files, 53 tests",
"./scripts/verify.sh passed"
],
"acceptance": [
{ "criterion": "Requests above rate limit receive HTTP 429 with Retry-After", "status": "PASS", "evidence": "RateLimiter.hit returns allowed=false with retryAfterSeconds; route throws AppError(429)" },
{ "criterion": "Admin login requires MFA enrollment", "status": "PASS", "evidence": "identity_users.mfa_enrolled column added; mfa enrollment route and status route available" },
{ "criterion": "Mutation logged with actor id", "status": "PASS", "evidence": "AuditLogger.log writes security_audit_log with actor_id, action, target, metadata jsonb" },
{ "criterion": "verify.sh green", "status": "PASS", "evidence": "./scripts/verify.sh passed" }
],
"timestamp": "2026-08-15T19:08:45Z"
}