Semántica de credenciales de autenticación
Este documento define la semántica canónica de elegibilidad y resolución de credenciales utilizada en:resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
Códigos estables de motivo de sondeo
okexcluded_by_auth_ordermissing_credentialinvalid_expiresexpiredunresolved_refno_model
Credenciales de token
Las credenciales de token (type: "token") admiten token en línea y/o tokenRef.
Reglas de elegibilidad
- Un perfil de token no es elegible cuando faltan tanto
tokencomotokenRef. expireses opcional.- Si
expiresestá presente, debe ser un número finito mayor que0. - Si
expiresno es válido (NaN,0, negativo, no finito o de tipo incorrecto), el perfil no es elegible coninvalid_expires. - Si
expiresestá en el pasado, el perfil no es elegible conexpired. tokenRefno omite la validación deexpires.
Reglas de resolución
- La semántica del resolvedor coincide con la semántica de elegibilidad para
expires. - Para los perfiles elegibles, el material del token puede resolverse desde el valor en línea o desde
tokenRef. - Las referencias que no se pueden resolver producen
unresolved_refen la salida demodels status --probe.
Filtrado explícito del orden de autenticación
- Cuando
auth.order.<provider>o la anulación del orden del almacén de autenticación está establecida para un proveedor,models status --probesolo sondea los id de perfil que permanecen en el orden de autenticación resuelto para ese proveedor. - Un perfil almacenado para ese proveedor que se omite del orden explícito no se intenta silenciosamente más tarde. La salida del sondeo lo informa con
reasonCode: excluded_by_auth_ordery el detalleExcluded by auth.order for this provider.
Resolución de destinos de sondeo
- Los destinos de sondeo pueden provenir de perfiles de autenticación, credenciales del entorno o
models.json. - Si un proveedor tiene credenciales pero OpenClaw no puede resolver un candidato de modelo apto para sondeo para él,
models status --probeinformastatus: no_modelconreasonCode: no_model.
Protección de la política de SecretRef para OAuth
- La entrada SecretRef es solo para credenciales estáticas.
- Si una credencial de perfil es
type: "oauth", los objetos SecretRef no son compatibles con ese material de credencial del perfil. - Si
auth.profiles.<id>.modees"oauth", la entradakeyRef/tokenRefrespaldada por SecretRef para ese perfil se rechaza. - Las infracciones son fallos graves en las rutas de inicio/recarga de resolución de autenticación.
Mensajería compatible con versiones heredadas
Para compatibilidad con scripts, los errores de sondeo mantienen esta primera línea sin cambios:Auth profile credentials are missing or expired.
Se pueden agregar detalles legibles para humanos y códigos estables de motivo en las líneas siguientes.