Files
mercadodevida/work/artifacts/F-017/security.json
2026-08-17 22:23:10 +02:00

18 lines
1.3 KiB
JSON

{
"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"
}