ADR-026: Security architecture
Estado
Accepted — 2026-08-23
Contexto
IVPrior maneja invoices, emails y promesas de pago de PYMES. Trust/accuracy es el riesgo de portafolio (DOC-001). Security by design, no un bolt-on.
Decisión
Principios: least privilege, defense in depth, secure by default, aislamiento de Organization (ADR-018).
Controles V1:
| Área | Control |
|---|---|
| AuthN/Z | ADR-023; no endpoints AR anónimos |
| Tenant | Filtro organizationId obligatorio; tests de aislamiento |
| Secrets | ADR-015; mailbox tokens cifrados at rest |
| HTTP | HTTPS; headers (CSP, HSTS) en web; CORS explícito |
| Input | Validación Zod/DTO en frontera; no raw SQL concatenado |
| Rate limits, opt-out, denylist de tono (ADR-020) | |
| AI | No inventar cifras; no mandar PII innecesaria al modelo (ADR-019) |
| Audit | Toda Message y cambio sensible (ADR-034) |
| Deps | make check incluye audit de dependencias cuando exista CI |
| Datos | No loguear cuerpos de email ni passwords |
OWASP Top 10 como checklist de brief/PR, no como certificación.
V1 no persigue SOC2/PCI. Payment links (V1.5) usarán Stripe (PCI lo lleva el vendor).
Consecuencias
- Spikes de mailbox/AI deben listar datos que salen del perímetro.
- Incidentes de accuracy (monto/fecha inventada) se tratan como incidente de producto, no solo de modelo.