Semantik der Auth-Credentials

Dieses Dokument definiert die kanonische Semantik zur Berechtigung und Auflösung von Credentials, wie sie in folgenden Bereichen verwendet wird:

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

Ziel ist es, das Verhalten bei der Auswahl und zur Laufzeit konsistent zu halten.

Stabile Reason-Codes

  • ok
  • missing_credential
  • invalid_expires
  • expired
  • unresolved_ref

Token-Credentials

Token-Credentials (type: "token") unterstützen sowohl Inline-token als auch tokenRef.

Berechtigungsregeln

  1. Ein Token-Profil ist nicht berechtigt, wenn sowohl token als auch tokenRef fehlen.
  2. expires ist optional.
  3. Wenn expires vorhanden ist, muss es eine endliche Zahl größer als 0 sein.
  4. Wenn expires ungültig ist (NaN, 0, negativ, nicht-endlich oder falscher Typ), ist das Profil mit invalid_expires nicht berechtigt.
  5. Wenn expires in der Vergangenheit liegt, ist das Profil mit expired nicht berechtigt.
  6. tokenRef umgeht die expires-Validierung nicht.

Auflösungsregeln

  1. Die Auflösungssemantik für expires entspricht der Berechtigungssemantik.
  2. Bei berechtigten Profilen kann das Token-Material aus einem Inline-Wert oder via tokenRef aufgelöst werden.
  3. Nicht auflösbare Refs erzeugen unresolved_ref in der Ausgabe von models status --probe.

Legacy-kompatible Meldungen

Aus Gründen der Skript-Kompatibilität bleibt die erste Zeile von Probe-Fehlern unverändert:

Auth profile credentials are missing or expired.

Benutzerfreundliche Details und stabile Reason-Codes können in nachfolgenden Zeilen ergänzt werden.