認証クレデンシャルのセマンティクス

このドキュメントでは、以下のコンポーネントで使用されるクレデンシャルの適格性判定と解決のセマンティクスを定義します。

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

選択時の挙動と実行時の挙動を一致させることが目的です。

安定したリーズンコード

  • ok
  • missing_credential
  • invalid_expires
  • expired
  • unresolved_ref

トークンクレデンシャル

トークンクレデンシャル(type: "token")は、インラインの tokentokenRef のいずれか、または両方をサポートします。

適格性ルール

  1. tokentokenRef の両方が存在しない場合、そのトークンプロファイルは不適格となる。
  2. expires は任意フィールド。
  3. expires が指定されている場合、0 より大きい有限の数値でなければならない。
  4. expires が無効な値(NaN0、負数、非有限、型不一致)の場合、invalid_expires として不適格となる。
  5. expires が過去の日時を指す場合、expired として不適格となる。
  6. tokenRef があっても expires のバリデーションは省略されない。

解決ルール

  1. expires に関するリゾルバのセマンティクスは、適格性判定と同一。
  2. 適格なプロファイルでは、トークンの実体はインライン値または tokenRef から解決される。
  3. 解決できない参照は、models status --probe の出力で unresolved_ref として報告される。

レガシー互換メッセージ

スクリプト互換性のため、probeエラーの1行目は以下の文言を維持します。

Auth profile credentials are missing or expired.

人間向けの詳細情報と安定したリーズンコードは、2行目以降に追加されます。