Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions docs-site/src/content/docs/fr/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,16 +317,18 @@ utilisez la matrice ci-dessous. « Dédié » signifie `X-OpenCodex-API-Key` ; l

| Surfaces | Dédié | Porteur | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP et WebSocket | Obligatoire | Rejeté pour l’admission au proxy | Rejeté |
| `/v1/responses/compact` | Obligatoire | Rejeté pour l’admission au proxy | Rejeté |
| `/v1/chat/completions` | Obligatoire | Rejeté pour l’admission au proxy | Rejeté |
| `/v1/responses` HTTP et WebSocket | Accepté | Accepté | Rejeté |
| `/v1/responses/compact` | Accepté | Accepté | Rejeté |
| `/v1/chat/completions` | Accepté | Accepté | Rejeté |
| `/v1/messages` et `/v1/messages/count_tokens` | Accepté | Accepté | Accepté |
| `/v1/models` | Accepté | Accepté | Accepté |
| `/v1/live`, `/v1/realtime/calls` et jointures de bande latérale | Accepté | Accepté | Accepté |

Réponses-famille et demandes de chat réservées `Authorization` au fournisseur ou Codex Direct
passthrough, donc une clé proxy distante doit utiliser l'en-tête dédié. Messages et surfaces en temps réel
ont besoin d’une compatibilité client plus large et acceptent donc les trois formes.
Les requêtes Responses et Chat acceptent une clé du proxy dans l’en-tête dédié ou dans Bearer. Sur une route native, l’identifiant Codex stocké sélectionné remplace le bearer d’admission ; sur les autres routes, ce bearer est supprimé. Il ne sert jamais d’identifiant upstream. Utilisez l’en-tête dédié si vous fournissez aussi un bearer distinct pour le fournisseur.

Une route Cursor sans clé et sans OAuth peut utiliser ce bearer distinct de l’appelant, mais jamais un secret du proxy ni l’authentification ChatGPT main ajoutée automatiquement. La sélection Combo/policy et les réécritures effectives shadow/thread-spawn ne transmettent pas les identifiants bruts de l’appelant aux nouvelles cibles. Le routage OpenAI canonique peut restaurer l’unique bearer de l’appelant qui n’est pas une clé du proxy après un changement de route interne uniquement si son JWT contient un claim de compte ChatGPT et si tout en-tête de compte explicite correspond à ce claim. La transmission de l’authentification de l’appelant aux sidecars OpenAI facultatifs exige un unique JWT et un `chatgpt-account-id` explicite et correspondant. Les bearers opaques ne sont pas restaurés lors des changements de route, même avec un en-tête de compte explicite. Dans les autres cas, la cible finale doit disposer de son propre identifiant configuré, OAuth ou stocké ; sinon, la requête échoue localement. Un simple marqueur thread-spawn sans changement de route ne supprime pas les identifiants.

Le replay Claude ne conserve l’authentification main que dans un snapshot en mémoire dont le turn a acquis la propriété, et ne la reconstruit que pour une route ChatGPT canonique finale.

:::caution
Les clés du plan de données ne sont pas des informations d’identification de gestion. La gestion API utilise un secret d'administration distinct ;
Expand Down
12 changes: 8 additions & 4 deletions docs-site/src/content/docs/ja/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,14 +234,18 @@ API ではありません。Desktop のキー移行・復旧・切断は既存

|表面 |専用 |ベアラー | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP と WebSocket |必須 |代理入場を拒否されました |拒否されました |
| `/v1/responses/compact` |必須 |代理入場を拒否されました |拒否されました |
| `/v1/chat/completions` |必須 |代理入場を拒否されました |拒否されました |
| `/v1/responses` HTTP と WebSocket | 承認済み | 承認済み |拒否されました |
| `/v1/responses/compact` | 承認済み | 承認済み |拒否されました |
| `/v1/chat/completions` | 承認済み | 承認済み |拒否されました |
| `/v1/messages` および `/v1/messages/count_tokens` |承認済み |承認済み |承認済み |
| `/v1/models` |承認済み |承認済み |承認済み |
| `/v1/live`、`/v1/realtime/calls`、および側波帯結合 |承認済み |承認済み |承認済み |

Responses-family および Chat リクエストは、プロバイダーまたは Codex Direct パススルー用に `Authorization` を予約するため、リモート プロキシ キーは専用ヘッダーを使用する必要があります。メッセージとリアルタイム サーフェスは、より広範なクライアント互換性を必要とするため、3 つの形式すべてを受け入れます。
Responses 系列と Chat のリクエストは、専用ヘッダーまたは Bearer フィールドのプロキシキーを受け付けます。ネイティブルートでは選択された保存済み Codex 認証情報が admission bearer を置き換え、他のルートではその bearer を削除します。プロキシキーを upstream の認証情報として使うことはありません。別の provider bearer も渡す場合は、プロキシキーを専用ヘッダーに設定してください。

キーがなく OAuth を使用しない Cursor ルートは、別途指定された呼び出し元 bearer を使用できますが、プロキシ secret や自動補完された ChatGPT main 認証は使用しません。Combo/policy の選択と実際の shadow/thread-spawn ルート変更では、呼び出し元の生の認証情報を新しい対象へ渡しません。正規の OpenAI ルーティングでは、JWT に ChatGPT アカウントの claim が含まれ、明示的なアカウントヘッダーがある場合はその claim と一致するときに限り、内部ルート変更後にプロキシキーではない呼び出し元の単一 bearer を復元できます。 オプションの OpenAI sidecar に呼び出し元の認証を転送するには、単一の JWT とそれに一致する明示的な `chatgpt-account-id` が必要です。Opaque bearer は、明示的なアカウントヘッダーがあっても、ルート変更をまたいで復元されません。 それ以外の最終対象には自身の設定済み・OAuth・保存済み認証情報が必要で、なければローカルで失敗します。ルート変更のない thread-spawn マーカーだけでは認証情報を削除しません。

Claude replay は、その turn が所有権を確保した main 認証だけをメモリ内 snapshot に保持し、最終対象が正規の ChatGPT ルートである場合にのみ復元します。

:::caution
データプレーン キーは管理資格情報ではありません。管理 API は別の管理シークレットを使用します。 [管理 API](/reference/management-api/)を参照してください。 1 つのシークレットを両方のプレーンに再利用しないでください。
Expand Down
14 changes: 8 additions & 6 deletions docs-site/src/content/docs/ko/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,16 +299,18 @@ loopback 전용 bind에서는 data-plane admission에 설정된 key가 필요하

| 표면 | Dedicated | Bearer | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP and WebSocket | 필요함 | proxy admission에서는 거부됨 | 거부됨 |
| `/v1/responses/compact` | 필요함 | proxy admission에서는 거부됨 | 거부됨 |
| `/v1/chat/completions` | 필요함 | proxy admission에서는 거부됨 | 거부됨 |
| `/v1/responses` HTTP and WebSocket | 허용됨 | 허용됨 | 거부됨 |
| `/v1/responses/compact` | 허용됨 | 허용됨 | 거부됨 |
| `/v1/chat/completions` | 허용됨 | 허용됨 | 거부됨 |
| `/v1/messages`와 `/v1/messages/count_tokens` | 허용됨 | 허용됨 | 허용됨 |
| `/v1/models` | 허용됨 | 허용됨 | 허용됨 |
| `/v1/live`, `/v1/realtime/calls`, 및 sideband joins | 허용됨 | 허용됨 | 허용됨 |

Responses 계열과 Chat 요청은 `Authorization`을 provider 또는 Codex Direct passthrough용으로 예약하므로, remote
proxy key는 전용 헤더를 사용해야 합니다. Messages와 Realtime 표면은 더 넓은 클라이언트 호환성이 필요하므로
세 가지 형식을 모두 허용합니다.
Responses 계열과 Chat 요청은 전용 헤더 또는 Bearer 필드의 프록시 키를 허용합니다. 네이티브 경로에서는 선택한 저장 Codex 자격 증명이 admission bearer를 대체하고, 다른 경로에서는 해당 bearer를 제거합니다. 프록시 키를 upstream 자격 증명으로 사용하지 않습니다. 별도의 provider bearer도 전달하려면 프록시 키는 전용 헤더에 넣으십시오.

키가 없고 OAuth를 쓰지 않는 Cursor 경로는 별도의 호출자 bearer를 사용할 수 있지만, 프록시 secret이나 자동으로 보충한 ChatGPT main 인증은 사용할 수 없습니다. Combo/policy 선택과 실제 shadow/thread-spawn 경로 변경은 호출자의 원본 자격 증명을 새 대상으로 넘기지 않습니다. 정규 OpenAI 라우팅은 JWT에 ChatGPT 계정 claim이 포함되어 있고 명시적 계정 헤더가 있으면 그 claim과 일치하는 경우에만, 내부 경로 변경 후 프록시 키가 아닌 호출자의 단일 bearer를 복원할 수 있습니다. 선택적 OpenAI sidecar에 호출자 인증을 전달하려면 단일 JWT와 이에 일치하는 명시적 `chatgpt-account-id`가 필요합니다. Opaque bearer는 명시적 계정 헤더가 있어도 경로 변경을 거쳐 복원되지 않습니다. 그 외의 최종 대상에는 자체 설정·OAuth·저장 자격 증명이 필요하며, 없으면 로컬에서 실패합니다. thread-spawn 표지만 있고 경로가 바뀌지 않으면 자격 증명을 제거하지 않습니다.

Claude replay는 해당 turn이 소유권을 확보한 main 인증만 메모리 snapshot으로 유지하며, 최종 대상이 정규 ChatGPT 경로일 때만 복원합니다.

:::caution
data-plane key는 management credential이 아닙니다. management API는 별도의 admin secret을 사용합니다.
Expand Down
14 changes: 8 additions & 6 deletions docs-site/src/content/docs/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -465,16 +465,18 @@ use the matrix below. “Dedicated” means `X-OpenCodex-API-Key`; the other col

| Surface | Dedicated | Bearer | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP and WebSocket | Required | Rejected for proxy admission | Rejected |
| `/v1/responses/compact` | Required | Rejected for proxy admission | Rejected |
| `/v1/chat/completions` | Required | Rejected for proxy admission | Rejected |
| `/v1/responses` HTTP and WebSocket | Accepted | Accepted | Rejected |
| `/v1/responses/compact` | Accepted | Accepted | Rejected |
| `/v1/chat/completions` | Accepted | Accepted | Rejected |
| `/v1/messages` and `/v1/messages/count_tokens` | Accepted | Accepted | Accepted |
| `/v1/models` | Accepted | Accepted | Accepted |
| `/v1/live`, `/v1/realtime/calls`, and sideband joins | Accepted | Accepted | Accepted |

Responses-family and Chat requests reserve `Authorization` for provider or Codex Direct
passthrough, so a remote proxy key must use the dedicated header. Messages and Realtime surfaces
need broader client compatibility and therefore accept all three forms.
Responses-family and Chat requests accept a proxy key in the dedicated header or Bearer field. On native routes, the selected stored Codex credential replaces the admission bearer; on other routes it is removed. It is never an upstream credential. Use the dedicated header when also supplying a separate provider bearer.

A keyless, non-OAuth Cursor route may use that separate caller bearer, but never a proxy secret or automatic ChatGPT-main enrichment. Combo/policy selection and actual shadow/thread-spawn rewrites do not transfer raw caller credentials to new targets. Canonical OpenAI routing can restore the caller’s single non-proxy bearer after an internal route change only when its JWT carries a ChatGPT account claim and any explicit account header matches that claim. Forwarding caller authentication to optional OpenAI sidecars requires a single JWT and a matching explicit `chatgpt-account-id`. Opaque bearers are not restored across route changes, even with an explicit account header. Otherwise, the final target needs its own configured, OAuth, or stored credential; otherwise it fails locally. A thread-spawn marker alone does not strip credentials.

Claude replay retains main auth only as a turn-claimed in-memory snapshot and reconstructs it only for a final canonical ChatGPT route.

:::caution
Data-plane keys are not management credentials. The management API uses a separate admin secret;
Expand Down
14 changes: 8 additions & 6 deletions docs-site/src/content/docs/ru/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,16 +301,18 @@ conversation.

| Поверхность | Выделенный | Bearer | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP и WebSocket | Обязателен | Отклоняется для proxy-admission | Отклоняется |
| `/v1/responses/compact` | Обязателен | Отклоняется для proxy-admission | Отклоняется |
| `/v1/chat/completions` | Обязателен | Отклоняется для proxy-admission | Отклоняется |
| `/v1/responses` HTTP и WebSocket | Принимается | Принимается | Отклоняется |
| `/v1/responses/compact` | Принимается | Принимается | Отклоняется |
| `/v1/chat/completions` | Принимается | Принимается | Отклоняется |
| `/v1/messages` и `/v1/messages/count_tokens` | Принимается | Принимается | Принимается |
| `/v1/models` | Принимается | Принимается | Принимается |
| `/v1/live`, `/v1/realtime/calls` и sideband-join'ы | Принимается | Принимается | Принимается |

Responses-family и Chat-запросы резервируют `Authorization` под passthrough провайдера или Codex
Direct, поэтому remote proxy key здесь обязан идти через dedicated-заголовок. Surface'ам Messages
и Realtime нужна более широкая совместимость с клиентами, поэтому там принимаются все три формы.
Запросы Responses и Chat принимают ключ прокси в выделенном заголовке или поле Bearer. На нативных маршрутах bearer допуска заменяется выбранными сохранёнными учётными данными Codex, а на остальных удаляется. Он никогда не используется для аутентификации upstream. Если передаётся отдельный bearer провайдера, ключ прокси следует указать в выделенном заголовке.

Маршрут Cursor без ключа и без OAuth может использовать отдельный bearer вызывающей стороны, но не секрет прокси и не автоматически добавленную аутентификацию ChatGPT main. Выбор Combo/policy и фактические изменения маршрута shadow/thread-spawn не передают исходные учётные данные вызывающей стороны новым целям. Каноническая маршрутизация OpenAI может восстановить единственный bearer вызывающей стороны, не являющийся ключом прокси, после внутреннего изменения маршрута только если его JWT содержит claim учётной записи ChatGPT и любой явно указанный заголовок учётной записи соответствует этому claim. Для передачи аутентификации вызывающей стороны в необязательные sidecar OpenAI необходимы один JWT и явно указанный соответствующий `chatgpt-account-id`. Непрозрачные bearer не восстанавливаются после изменения маршрута даже при наличии явно указанного заголовка учётной записи. В остальных случаях конечной цели нужны собственные настроенные, OAuth или сохранённые учётные данные; иначе запрос завершается локальной ошибкой. Один маркер thread-spawn без изменения маршрута не удаляет учётные данные.

Claude replay сохраняет аутентификацию main только в снимке в памяти, владение которым обеспечено текущим turn, и восстанавливает её только для конечного канонического маршрута ChatGPT.

:::caution
Ключи data plane — это не management credentials. У management API свой отдельный admin-secret;
Expand Down
15 changes: 8 additions & 7 deletions docs-site/src/content/docs/tr/reference/proxy-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,17 +326,18 @@ ve `x-api-key` anlamına gelir.

| Yüzey | Özel | Bearer | `x-api-key` |
| --- | --- | --- | --- |
| `/v1/responses` HTTP ve WebSocket | Gerekli | Proxy kabulü için reddedilir | Reddedilir |
| `/v1/responses/compact` | Gerekli | Proxy kabulü için reddedilir | Reddedilir |
| `/v1/chat/completions` | Gerekli | Proxy kabulü için reddedilir | Reddedilir |
| `/v1/responses` HTTP ve WebSocket | Kabul Edilir | Kabul Edilir | Reddedilir |
| `/v1/responses/compact` | Kabul Edilir | Kabul Edilir | Reddedilir |
| `/v1/chat/completions` | Kabul Edilir | Kabul Edilir | Reddedilir |
| `/v1/messages` ve `/v1/messages/count_tokens` | Kabul Edilir | Kabul Edilir | Kabul Edilir |
| `/v1/models` | Kabul Edilir | Kabul Edilir | Kabul Edilir |
| `/v1/live`, `/v1/realtime/calls` ve yan bant katılımları | Kabul Edilir | Kabul Edilir | Kabul Edilir |

Responses ailesi ve Sohbet istekleri `Authorization`'ı sağlayıcı veya Codex
Direct doğrudan geçişi için ayırır, bu nedenle uzak bir proxy anahtarı özel
başlığı kullanmalıdır. Messages ve Realtime yüzeyleri daha geniş istemci
uyumluluğuna ihtiyaç duyar ve bu nedenle üç formu da kabul eder.
Responses ailesi ve Chat istekleri, özel başlıkta veya Bearer alanında bir proxy anahtarını kabul eder. Yerel Codex rotalarında seçilen kayıtlı Codex kimlik bilgisi kabul bearer’ının yerini alır; diğer rotalarda bu bearer kaldırılır. Proxy anahtarı hiçbir zaman upstream kimlik bilgisi olarak kullanılmaz. Ayrı bir sağlayıcı bearer’ı da gönderiyorsanız proxy anahtarını özel başlığa koyun.

Anahtarı olmayan ve OAuth kullanmayan bir Cursor rotası, çağıranın ayrı bearer’ını kullanabilir; proxy sırrını veya otomatik eklenen ChatGPT main kimlik bilgisini kullanamaz. Combo/policy seçimi ve gerçekleşen shadow/thread-spawn rota değişiklikleri, çağıranın ham kimlik bilgilerini yeni hedeflere aktarmaz. Kanonik OpenAI yönlendirmesi, dahili rota değişikliğinden sonra çağıranın proxy anahtarı olmayan tek bearer’ını yalnızca JWT’si bir ChatGPT hesap claim’i içeriyorsa ve açıkça belirtilmiş herhangi bir hesap başlığı bu claim ile eşleşiyorsa geri yükleyebilir. Çağıranın kimlik doğrulamasını isteğe bağlı OpenAI sidecar’larına iletmek için tek bir JWT ve onunla eşleşen, açıkça belirtilmiş bir `chatgpt-account-id` gerekir. Opaque bearer’lar, açıkça belirtilmiş bir hesap başlığı olsa bile rota değişikliklerinden sonra geri yüklenmez. Diğer durumlarda son hedefin kendi yapılandırılmış, OAuth veya kayıtlı kimlik bilgisi bulunmalıdır; aksi hâlde istek yerel olarak başarısız olur. Rota değişmeden yalnızca thread-spawn işaretinin bulunması kimlik bilgilerini kaldırmaz.

Claude replay, main kimlik bilgisini yalnızca ilgili turn tarafından sahipliği alınmış bir bellek snapshot’ında tutar ve yalnızca son hedef kanonik bir ChatGPT rotasıysa geri yükler.

:::caution
Veri düzlemi anahtarları yönetim kimlik bilgileri değildir. Yönetim API'si ayrı
Expand Down
Loading
Loading