Semántica de credenciales de autenticación

Este documento define la semántica canónica de elegibilidad y resolución de credenciales que se usa en:

  • resolveAuthProfileOrder
  • resolveApiKeyForProfile
  • models status --probe
  • doctor-auth

El objetivo es mantener alineado el comportamiento en tiempo de selección y en tiempo de ejecución.

Códigos de razón estables

  • ok
  • missing_credential
  • invalid_expires
  • expired
  • unresolved_ref

Credenciales de token

Las credenciales de token (type: "token") admiten token inline y/o tokenRef.

Reglas de elegibilidad

  1. Un perfil de token no es elegible cuando faltan tanto token como tokenRef.
  2. expires es opcional.
  3. Si expires está presente, debe ser un número finito mayor que 0.
  4. Si expires no es válido (NaN, 0, negativo, no finito o tipo incorrecto), el perfil no es elegible con invalid_expires.
  5. Si expires está en el pasado, el perfil no es elegible con expired.
  6. tokenRef no evita la validación de expires.

Reglas de resolución

  1. La semántica del resolver coincide con la semántica de elegibilidad para expires.
  2. Para perfiles elegibles, el material del token puede resolverse desde el valor inline o desde tokenRef.
  3. Las referencias que no se pueden resolver producen unresolved_ref en la salida de models status --probe.

Mensajes compatibles con versiones anteriores

Para compatibilidad con scripts, los errores del probe mantienen esta primera línea sin cambios:

Auth profile credentials are missing or expired.

Los detalles legibles y los códigos de razón estables pueden añadirse en las líneas siguientes.