Files
mercadodevida/work/artifacts/F-142/security.json
2026-08-21 22:06:54 +02:00

20 lines
1.6 KiB
JSON

{
"feature_id": "F-142",
"agent": "security",
"stage": "security_gate",
"verdict": "APPROVED",
"reviewed_at": "2026-08-21T20:07:00Z",
"summary": "El diseño incorpora los controles necesarios para reporting: autorización backend, aislamiento de tienda, protección de PII/finanzas, SQL parametrizado y exportaciones limitadas. No se ha añadido código ni almacenamiento de datos.",
"checks": [
{"item":"PII scope identified","ok":true,"evidence":"Customer report requires permission and architecture limits emails/addresses to authorized reports"},
{"item":"Financial data scope identified","ok":true,"evidence":"REPORTING_FINANCIAL protects cost/margin, tax detail and cash differences"},
{"item":"Cross-store isolation planned","ok":true,"evidence":"Store scope is required in SQL and authorization; negative tests included in task Definition of Done"},
{"item":"SQL injection risk addressed","ok":true,"evidence":"Contract requires parameterized values, bounded filters and rejects invalid IDs; groupBy/order are allowlisted concepts"},
{"item":"Payment data safety addressed","ok":true,"evidence":"Payment-line task explicitly forbids PAN/CVV and stores only provider references"},
{"item":"Export abuse addressed","ok":true,"evidence":"REPORTING_EXPORT, server-side limits/streaming and audit metadata are required"},
{"item":"No security behavior changed in F-142","ok":true,"evidence":"Only docs and pending backlog tickets were added"}
],
"issues": [],
"notes":"Implementation must treat the architecture as a security contract: frontend visibility is not authorization; each report/export/filter must be checked in backend."
}