dec-0087

Vista generada de dec-0087: Identity boundary

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0087-identity-boundary.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0087-identity-boundary.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadaD7.3
Ficherodocs/decisions/dec-0087-identity-boundary.md

Por qué importa (del frontmatter del ADR):

r57 Platform Adapter (secure storage/identity bridge responsibility), r48 ExtensionContext anti-auth-temporal, F-IDENTITY (auth contract); styx.model.yml: F-APPLIANCE-OS dependsOn [F-IDENTITY]

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0087-identity-boundary.md, el fichero canónico.

Identity boundary

Identity boundary: F-IDENTITY authoritative sobre credenciales; StyxOS custodian local (enrollment, secure storage, recovery); cliente consumer (lee credenciales, NO las inventa, NO implementa device lifecycle)

Por qué pasa gate-3

  • Hard-to-reverse: El boundary está codificado en múltiples contratos: F-IDENTITY (auth), r57 Platform Adapter (secure storage bridge r57 D5.6 secrets seam), r48 ExtensionContext anti-auth-temporal. Cambiarlo requeriría mover lógica de enrollment/secure storage del cliente al OS o viceversa, rompiendo el seam de Platform Adapter
  • Surprising sin contexto: Un ingeniero podría asumir que el appliance client implementa device lifecycle localmente (secure storage, identity bridge) en vez de delegar a StyxOS. La distinción 'StyxOS SOLO implementa enrollment/storage/recovery' vs 'cliente NO implementa device lifecycle' es non-obvious sin el ADR
  • Trade-off real: Trade-off: riesgo R-D7.4 'Cliente fuerza credenciales locales' (alta seguridad impact) mitigado por D7.3 boundary + r48 ExtensionContext anti-auth-temporal + r57 D5.6 secrets seam. Alternativa rechazada = cliente implementa credenciales locales (con coste:打破了 auth contract, shadow auth, auditability)

Procedencia

Split de docs/decisions/r59-appliance-client-os-separation-2026-07-15.md (lock D7.3) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.