> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Estándar — Seguridad (enmiendas v2)

> - 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}).

> Traducción. Autoritativo: [`../../standards/security.md`](/standards/security).

* **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 `jti`
  en Redis).
* **`national_id`:** enmascarado por defecto en todas partes; la lectura completa exige
  `core.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.
