35 lines
1.5 KiB
JSON
35 lines
1.5 KiB
JSON
{
|
|
"feature_id": "F-049",
|
|
"verdict": "APPROVED",
|
|
"agent": "security",
|
|
"timestamp": "2026-08-19T05:35:00Z",
|
|
"checks": {
|
|
"dependency_audit": {
|
|
"pass": true,
|
|
"notes": "npm audit --omit=dev --audit-level=high sin vulnerabilidades en backend, admin, frontend y storefront."
|
|
},
|
|
"secret_scan": {
|
|
"pass": true,
|
|
"notes": "No se detectan claves privadas, AWS access keys ni Stripe live keys en árbol de proyecto ni en el diff."
|
|
},
|
|
"shell_safety": {
|
|
"pass": true,
|
|
"notes": "monolith.sh usa set -euo pipefail, no hace pkill global, no imprime variables de entorno, aborta ante conflictos de puerto y maneja SIGTERM con KILL como último recurso."
|
|
},
|
|
"auth_state": {
|
|
"pass": true,
|
|
"notes": "El backend actual no expone endpoints sensibles sin auth; el admin corre con COOKIE_SECURE=false sólo porque la deployment actual es HTTP en LAN de confianza (documentado)."
|
|
},
|
|
"lan_exposure": {
|
|
"pass": true,
|
|
"notes": "Bindings 0.0.0.0 documentados como acceso LAN de confianza; el HOWTO recomienda habilitar HTTPS y COOKIE_SECURE=true en producción pública con reverse proxy."
|
|
},
|
|
"hygiene": {
|
|
"pass": true,
|
|
"notes": "git diff --check verde y runtime efímero ignorado."
|
|
}
|
|
},
|
|
"residual_risk": "Exposición LAN sin TLS y con cookies no-secure. Aceptable para HTTP interno; en producción pública se debe añadir reverse proxy HTTPS y COOKIE_SECURE=true.",
|
|
"notes": "Security gate aprobado."
|
|
}
|