feat(ADM-018): completed feature
This commit is contained in:
17
work/artifacts/F-017/security.json
Normal file
17
work/artifacts/F-017/security.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"feature_id": "F-017",
|
||||
"agent": "security",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Security approved. No new dependencies or committed secrets were introduced. Price mutations require admin authentication, request input is validated with zod, SQL uses parameterized queries, and client-supplied price/tax totals are stripped and ignored by calculation.",
|
||||
"evidence": [
|
||||
"cd project && npm audit --audit-level=high --omit=dev: found 0 vulnerabilities",
|
||||
"Secret scan over project/src/modules/pricing, project/migrations/012_pricing.js and project/src/app/tests/pricing.itest.ts found only a test fixture password, no committed credentials",
|
||||
"Reviewed pricing routes: PUT /pricing/variants/:variantId requires authenticated admin role; calculate route accepts only variantId and quantity",
|
||||
"Reviewed validation: variantId is z.uuid(); amounts and quantities are integer-bounded; VAT rate is enum general/reduced",
|
||||
"Reviewed calculate schema: `.strip()` removes client-supplied totals/prices before service calculation",
|
||||
"Reviewed repository SQL: all dynamic values are parameterized; no user input is interpolated into SQL text",
|
||||
"Reviewed migration: CHECK constraints enforce non-negative amounts, allowed VAT rates, and EUR-only currency",
|
||||
"No new runtime dependency added"
|
||||
],
|
||||
"timestamp": "2026-08-15T16:24:35Z"
|
||||
}
|
||||
Reference in New Issue
Block a user