Auth Credential Semantics
This document defines the canonical credential eligibility and resolution semantics used across:resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
Stable Reason Codes
okmissing_credentialinvalid_expiresexpiredunresolved_ref
Token Credentials
Token credentials (type: "token") support inline token and/or tokenRef.
Eligibility rules
- A token profile is ineligible when both
tokenandtokenRefare absent. expiresis optional.- If
expiresis present, it must be a finite number greater than0. - If
expiresis invalid (NaN,0, negative, non-finite, or wrong type), the profile is ineligible withinvalid_expires. - If
expiresis in the past, the profile is ineligible withexpired. tokenRefdoes not bypassexpiresvalidation.
Resolution rules
- Resolver semantics match eligibility semantics for
expires. - For eligible profiles, token material may be resolved from inline value or
tokenRef. - Unresolvable refs produce
unresolved_refinmodels status --probeoutput.
OAuth SecretRef Policy Guard
- SecretRef input is for static credentials only.
- If a profile credential is
type: "oauth", SecretRef objects are not supported for that profile credential material. - If
auth.profiles.<id>.modeis"oauth", SecretRef-backedkeyRef/tokenRefinput for that profile is rejected. - Violations are hard failures in startup/reload auth resolution paths.
Legacy-Compatible Messaging
For script compatibility, probe errors keep this first line unchanged:Auth profile credentials are missing or expired.
Human-friendly detail and stable reason codes may be added on subsequent lines.