Traducción. Autoritativo: ../../standards/security.md.
- Roles de máquina: las API keys y los clientes OAuth reciben roles exactamente como los
usuarios; las verificaciones de permiso son idénticas (
{module}.{resource}.{action}). No hay endpoint sin autenticar salvo la ingesta de track documentada con write key pública (con rate limit, validada por schema y acotada al tenant). - Aislamiento del realm de member: los members viven en un realm de Better Auth separado; un
token de member NUNCA puede adquirir permisos de consola; las aserciones de token exchange se
firman por tenant, son de vida corta (≤5 min) y de un solo uso (verificación de replay por
jtien Redis). national_id: enmascarado por defecto en todas partes; la lectura completa exigecore.contacts.read_national_id; cada lectura completa queda auditada. Las exportaciones que lo contengan exigen el mismo permiso y se auditan como acceso masivo.- Webhooks salientes: la firma HMAC y las protecciones SSRF existentes no cambian; la inclusión de PII en los payloads es opt-in por endpoint, apagada por defecto.
- Allowlist de IP: endurecimiento opcional por tenant, apagado por defecto (DEC-D6).
- Impersonación (Softcrum Ops): siempre acotada en el tiempo, con razón obligatoria, totalmente auditada, y visible para el tenant en su propio rastro.