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