claude-apps-gateway-config.md +110 −4
94| `id_token_signed_response_alg` | Tidak | Expected id\_token signing algorithm. Default `RS256`. Atur untuk IdP yang menandatangani dengan ES256, PS256, atau EdDSA. |94| `id_token_signed_response_alg` | Tidak | Expected id\_token signing algorithm. Default `RS256`. Atur untuk IdP yang menandatangani dengan ES256, PS256, atau EdDSA. |
95| `additional_authorized_parties` | Tidak | Extra `azp` values untuk diterima di luar `client_id`, untuk Keycloak broker dan token-exchange flows |95| `additional_authorized_parties` | Tidak | Extra `azp` values untuk diterima di luar `client_id`, untuk Keycloak broker dan token-exchange flows |
96| `discovery_url` | Tidak | Ambil discovery document dari URL ini daripada menurunkannya dari `issuer`, untuk IdP di belakang proxy yang menulis ulang issuer host. Path harus berisi `/.well-known/`. |96| `discovery_url` | Tidak | Ambil discovery document dari URL ini daripada menurunkannya dari `issuer`, untuk IdP di belakang proxy yang menulis ulang issuer host. Path harus berisi `/.well-known/`. |
9797| `use_proxy` | Tidak | Kirim IdP requests gateway sendiri melalui forward proxy di `HTTPS_PROXY` atau `HTTP_PROXY`, menghormati `NO_PROXY`. Unset atau `false`, requests tersebut langsung. Memerlukan v2.1.227 atau lebih baru; lihat [IdP requests through a forward proxy](#idp-requests-through-a-forward-proxy) di bawah. || `use_proxy` | Tidak | Kirim IdP requests gateway sendiri melalui forward proxy di `HTTPS_PROXY` atau `HTTP_PROXY`, menghormati `NO_PROXY`. `false` menjaga requests tersebut langsung. Memerlukan v2.1.227 atau lebih baru; lihat [IdP requests through a forward proxy](#idp-requests-through-a-forward-proxy) di bawah. |
98| `form_action_origins` | Tidak | Origins tambahan untuk direktif `Content-Security-Policy: form-action` halaman `/device`. Gateway sudah mengizinkan `'self'` dan origin `authorization_endpoint` yang ditemukan, tetapi Chrome memberlakukan `form-action` terhadap seluruh redirect chain. Jika IdP Anda mengalihkan melalui host kedua, seperti Azure AD federated ke ADFS, hub-spoke Okta, atau SSO interceptor korporat, daftar setiap origin yang mungkin dialihkan oleh authorization request. |98| `form_action_origins` | Tidak | Origins tambahan untuk direktif `Content-Security-Policy: form-action` halaman `/device`. Gateway sudah mengizinkan `'self'` dan origin `authorization_endpoint` yang ditemukan, tetapi Chrome memberlakukan `form-action` terhadap seluruh redirect chain. Jika IdP Anda mengalihkan melalui host kedua, seperti Azure AD federated ke ADFS, hub-spoke Okta, atau SSO interceptor korporat, daftar setiap origin yang mungkin dialihkan oleh authorization request. |
99| `ca_cert_pem` | Tidak | PEM-encoded CA certificate itu sendiri, bukan path ke file. Ini menggantikan system trust store untuk IdP requests saja. Untuk memuat file yang di-mount, tulis `${file:/etc/gateway/idp-ca.pem}`. Gunakan untuk Keycloak atau Dex di belakang corporate PKI. |99| `ca_cert_pem` | Tidak | PEM-encoded CA certificate itu sendiri, bukan path ke file. Ini menggantikan system trust store untuk IdP requests saja. Untuk memuat file yang di-mount, tulis `${file:/etc/gateway/idp-ca.pem}`. Gunakan untuk Keycloak atau Dex di belakang corporate PKI. |
100 100
106 106
107Dengan `use_proxy: true`, pod menyelesaikan hostname setiap IdP endpoint itu sendiri dan meminta proxy untuk `CONNECT` ke resolved IP address, jadi proxy harus menerima `CONNECT` ke IP address setiap host yang discovery document namai, bukan hanya issuer. Gunakan `http://` proxy URL. `ca_cert_pem` dan [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) berlaku pada proxied path juga.107Dengan `use_proxy: true`, pod menyelesaikan hostname setiap IdP endpoint itu sendiri dan meminta proxy untuk `CONNECT` ke resolved IP address, jadi proxy harus menerima `CONNECT` ke IP address setiap host yang discovery document namai, bukan hanya issuer. Gunakan `http://` proxy URL. `ca_cert_pem` dan [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) berlaku pada proxied path juga.
108 108
109[Proxy-only egress](#proxy-only-egress) mengubah keduanya: saat aktif, IdP requests mengikuti proxy kecuali Anda menetapkan `use_proxy: false`, dan gateway menyerahkan proxy setiap hostname IdP tanpa menyelesaikannya terlebih dahulu.
110
111<h4 id="proxy-only-egress">
112 Proxy-only egress
113</h4>
114
115Atur `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` di environment gateway, di sebelah `HTTPS_PROXY`, ketika pod mencapai host lain hanya melalui forward proxy itu dan tidak dapat menyelesaikan public DNS names itu sendiri, atau ketika proxy menolak `CONNECT` ke IP address. Memerlukan v2.1.277 atau lebih baru. Ini adalah environment variable daripada kunci `gateway.yaml` jadi tidak ada apa pun dalam file config yang dapat melonggarkan address check gateway.
116
117```bash theme={null}
118export HTTPS_PROXY=http://proxy.corp.example.com:3128
119export NO_PROXY=
120export no_proxy=
121export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1
122```
123
124Gateway mencatat satu baris `network:` saat boot saat proxy-only egress aktif.
125
126Setiap baris di bawah adalah satu class dari outbound request pada gateway dengan `HTTPS_PROXY` diatur, secara default dan saat proxy-only egress aktif.
127
128| Outbound request | Default | Proxy-only egress active |
129| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
130| `provider: anthropic` upstreams, Workload Identity Federation token exchange, `telemetry.forward_to` exports | Resolved dan checked secara lokal, kemudian `CONNECT` ke checked IP address melalui proxy. Telemetry collector yang terdaftar di `NO_PROXY` dicapai langsung sebagai gantinya | Hostname diserahkan ke proxy |
131| IdP discovery, JWKS, token, dan userinfo | Direct kecuali [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), kemudian `CONNECT` ke checked IP address | Hostname diserahkan ke proxy, kecuali `oidc.use_proxy: false` menjaga internal IdP langsung |
132| Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry upstreams; Google group lookups | Hostname diserahkan ke proxy | Unchanged |
133
134Proxy-only egress tetap off kecuali environment gateway memenuhi ketiga kondisi ini:
135
136* `HTTPS_PROXY` atau `HTTP_PROXY` diatur.
137* `NO_PROXY` dan `no_proxy` kosong. Jika platform Anda menyuntikkan salah satu ke pods, atur keduanya ke nilai kosong pada container gateway. Mendaftar telemetry collector di `NO_PROXY` menjaga proxy-only egress off.
138* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` tidak diaktifkan. Collector atau IdP pada loopback pod sendiri tidak dapat dikombinasikan dengan proxy-only egress, karena loopback address yang diserahkan ke proxy akan menjadi proxy host sendiri, jadi berikan services tersebut address yang dapat dicapai proxy. Untuk alasan yang sama gateway menolak `localhost`-style names sepenuhnya saat proxy-only egress aktif.
139
140Ketika salah satu kondisi itu tidak terpenuhi, gateway mencatat warning saat boot menamai variable yang menghentikannya dan menjaga default behavior.
141
142Setelah proxy-only egress aktif, izinkan setiap destination di proxy, termasuk internal collector dan host apa pun yang dikonfigurasi oleh IP address. Anda masih dapat menjaga internal IdP langsung dengan [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).
143
144<Warning>
145 Aktifkan ini hanya ketika allowlist proxy setidaknya setat ketat dengan check gateway sendiri. Proxy harus menolak cloud metadata endpoints seperti `169.254.169.254` dan `metadata.google.internal`, link-local addresses, dan loopback proxy host sendiri, dan harus menolaknya oleh address yang name resolves ke, bukan hanya oleh name, karena gateway tidak lagi menangkap hostname yang resolves ke salah satu dari mereka. Proxy yang terhubung ke mana pun diminta menghapus [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) gateway untuk requests ini.
146</Warning>
147
109<h3 id="session">148<h3 id="session">
110 `session`149 `session`
111</h3>150</h3>
124Blok `store` menunjukkan gateway ke database PostgreSQL-nya, yang menyimpan device grants dan rate-limit counters.163Blok `store` menunjukkan gateway ke database PostgreSQL-nya, yang menyimpan device grants dan rate-limit counters.
125 164
126| Field | Diperlukan | Deskripsi |165| Field | Diperlukan | Deskripsi |
127166| ----------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || ------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
128| `postgres_url` | Ya | `postgres://` atau `postgresql://` URL. Diperlukan: device-grant rendezvous, di mana browser callback menulis dan polling CLI membaca, memerlukan cross-replica state. Gateway menjalankan schema migrations-nya sendiri saat boot dan pada upgrade, jadi role memerlukan rights untuk membuat dan mengubah tables pada target schema. Lihat [Upgrades](/docs/id/claude-apps-gateway-deploy#upgrades) dan [Postgres](/docs/id/claude-apps-gateway-deploy#postgres). |167| `postgres_url` | Ya | `postgres://` atau `postgresql://` URL. Diperlukan: device-grant rendezvous, di mana browser callback menulis dan polling CLI membaca, memerlukan cross-replica state. Gateway menjalankan schema migrations-nya sendiri saat boot dan pada upgrade, jadi role memerlukan rights untuk membuat dan mengubah tables pada target schema. Lihat [Upgrades](/docs/id/claude-apps-gateway-deploy#upgrades) dan [Postgres](/docs/id/claude-apps-gateway-deploy#postgres). |
129| `username` | Tidak | Overrides user di `postgres_url` |168| `username` | Tidak | Overrides user di `postgres_url` |
130| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |169| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |
131| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |170| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |
171| `connect_timeout_seconds` | Tidak | Detik gateway menunggu ketika membuka koneksi Postgres. Seluruh number dari `1` hingga `60`, default `5`. Naikkan jika upaya koneksi timeout ketika instance gateway baru dimulai. Memerlukan Claude Code v2.1.274 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika key diatur. |
132 172
133Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.173Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.
134 174
365| ACI / App Service | Enable system-assigned atau user-assigned managed identity pada resource. `use_azure_ad: true` mengambilnya. |405| ACI / App Service | Enable system-assigned atau user-assigned managed identity pada resource. `use_azure_ad: true` mengambilnya. |
366| Tempat lain | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Quote `${…}` di dalam `{ }`. |406| Tempat lain | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Quote `${…}` di dalam `{ }`. |
367 407
408<h4 id="static-headers-on-upstream-requests">
409 Static headers on upstream requests
410</h4>
411
412Untuk menambahkan fixed headers ke requests yang gateway kirim ke satu upstream, atur `headers:` pada upstream itu. Gunakan ketika proxy yang Anda jalankan di depan provider routes atau attributes traffic oleh header.
413
414`headers:` memerlukan Claude Code v2.1.277 atau lebih baru di server gateway. Gateway sebelumnya menolak untuk memulai ketika menemukan key. Upgrade setiap replica sebelum Anda menambahkan key, dan hapus key sebelum Anda rollback ke versi sebelumnya.
415
416Headers pergi ke server yang `base_url` namai, atau ke endpoint provider sendiri ketika `base_url` unset. Provider menerimanya juga kecuali proxy Anda menghapusnya.
417
418Contoh ini mencapai upstream `provider: vertex` melalui proxy di `upstream-proxy.internal.example.com`. Ini menetapkan header `x-source` yang proxy baca, dan mengirim token dari environment variable `PROXY_TOKEN` sebagai `x-proxy-token`:
419
420```yaml theme={null}
421upstreams:
422 - provider: vertex
423 region: us-east5
424 project_id: example-prod
425 base_url: https://upstream-proxy.internal.example.com
426 auth: {}
427 headers:
428 x-source: claude-apps-gateway
429 x-proxy-token: ${PROXY_TOKEN}
430```
431
432Values adalah printable ASCII text tanpa space di kedua ujung. Quote number, `true`, atau `false` jadi YAML membacanya sebagai text.
433
434Untuk menjaga secret keluar dari file config, gunakan [secret expansion](#secret-expansion) untuk memuat value dari environment variable dengan `${VAR}` atau dari file dengan `${file:/path}`. `${VAR}` yang resolves ke empty value menghentikan gateway dari memulai.
435
436`headers:` bekerja pada setiap provider, dan setiap upstream mengirim hanya miliknya sendiri.
437
438Tidak setiap request yang gateway kirim ke upstream membawanya:
439
440| Request yang gateway kirim ke upstream ini | Carries `headers:` |
441| --------------------------------------------------------------------- | --------------------------------- |
442| `/v1/messages`, streaming atau tidak, dan `/v1/messages/count_tokens` | Ya |
443| Request yang failover dari upstream lain | Ya, hanya `headers:` upstream ini |
444| Amazon Bedrock's `CountTokens` call untuk request yang client abaikan | Tidak |
445| Workload Identity Federation token exchange | Tidak |
446
447Pada Amazon Bedrock atau Claude Platform on AWS upstream yang menandatangani requests dengan AWS SigV4, headers ini adalah bagian dari signature, jadi proxy Anda harus meneruskannya tanpa perubahan.
448
449Jika Anda menggunakan name yang gateway reserve, ia menolak untuk memulai, dan startup error menamai header. Reserved names termasuk:
450
451* `authorization` dan `x-api-key`
452* `host`, `content-type`, dan `user-agent`
453* Nama apa pun yang dimulai dengan `anthropic-`, `x-goog-`, `x-amz-`, atau `x-amzn-`
454
368<h4 id="multiple-upstreams">455<h4 id="multiple-upstreams">
369 Multiple upstreams456 Multiple upstreams
370</h4>457</h4>
375 462
376`429` adalah per-upstream capacity, jadi provisioned-throughput (PT) exhaustion failover ke on-demand. Jika Anda menetapkan [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) pada upstream, `429` ke request yang membawa email developer adalah per-user denial daripada dan tidak failover.463`429` adalah per-upstream capacity, jadi provisioned-throughput (PT) exhaustion failover ke on-demand. Jika Anda menetapkan [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) pada upstream, `429` ke request yang membawa email developer adalah per-user denial daripada dan tidak failover.
377 464
465Setiap request dimulai pada upstream pertama. Request mencapai upstream yang lebih baru hanya ketika setiap upstream di depannya telah gagal atau tidak melayani model yang diminta.
466
467Gateway menjaga tidak ada record dari failed upstreams, jadi saat upstream down, setiap request yang mencapainya masih mencobanya dan menunggu untuk gagal sebelum pindah.
468
469Untuk Anthropic API upstream, [`timeouts.upstream_ttfb_ms`](#http-tuning) bounds wait pada down upstream. Setting ini tidak berlaku pada provider lainnya, di mana gateway menunggu hingga satu jam untuk upstream mulai merespons.
470
378`404` adalah per-upstream model availability, jadi upstream yang belum enable model tidak memblokir upstream yang lebih baru dalam list yang melayaninya. Upstream yang tidak dapat menyelesaikan model yang diminta dilewati tanpa network round-trip.471`404` adalah per-upstream model availability, jadi upstream yang belum enable model tidak memblokir upstream yang lebih baru dalam list yang melayaninya. Upstream yang tidak dapat menyelesaikan model yang diminta dilewati tanpa network round-trip.
379 472
380Contoh ini route provisioned-throughput Bedrock allotment pertama, overflow ke on-demand dan second account, dan fallback ke Anthropic API terakhir:473Contoh ini route provisioned-throughput Bedrock allotment pertama, overflow ke on-demand dan second account, dan fallback ke Anthropic API terakhir:
797 890
798[Claude Desktop](#claude-desktop-overlay) dan sesi Cowork yang masuk melalui gateway memberi stempel telemetry mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, jadi Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu query pada `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.891[Claude Desktop](#claude-desktop-overlay) dan sesi Cowork yang masuk melalui gateway memberi stempel telemetry mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, jadi Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu query pada `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.
799 892
893Desktop dan Cowork telemetry juga membawa `enduser.sub`, klaim `sub` yang penyedia identitas Anda terbitkan untuk pengguna, yang tetap sama ketika email pengguna berubah. Sesi terminal memberi stempel nilai yang sama di bawah `user.id`, jadi query yang cocok `enduser.sub` terhadap terminal `user.id` mencakup penggunaan terminal, Desktop, dan Cowork satu pengguna bersama-sama. Pada export Desktop dan Cowork, `user.id` adalah identifier anonim, bukan subject.
894
800Seperti semua data OpenTelemetry dari Claude Code, atribut ini hanya pergi ke tujuan yang organisasi Anda konfigurasikan, tidak pernah ke Anthropic.895Seperti semua data OpenTelemetry dari Claude Code, atribut ini hanya pergi ke tujuan yang organisasi Anda konfigurasikan, tidak pernah ke Anthropic.
801 896
802Jika daftar grup pengguna lebih panjang dari 255 karakter setelah percent-encoded, atau nama grup berisi koma atau tanda sama dengan, gateway meninggalkan `user.groups` dari telemetry Desktop dan Cowork pengguna itu daripada memotongnya. Sesi terminal pengguna itu masih membawa daftar lengkap.897Jika daftar grup pengguna lebih panjang dari 255 karakter setelah percent-encoded, atau nama grup berisi koma atau tanda sama dengan, gateway meninggalkan `user.groups` dari telemetry Desktop dan Cowork pengguna itu daripada memotongnya. Sesi terminal pengguna itu masih membawa daftar lengkap.
803 898
899Gateway meninggalkan `enduser.sub` ketika subject lebih panjang dari 255 karakter setelah percent-encoded, atau berisi spasi, karakter di luar printable ASCII, atau salah satu dari `,` `;` `=` `\` `"` `%`. Telemetry Desktop dan Cowork pengguna itu menyimpan atribut lainnya.
900
804Anda memerlukan Claude Code v2.1.265 atau lebih baru di server gateway untuk `user.email` dan `user.groups` pada telemetry Desktop dan Cowork, dan Claude Desktop 1.24012 atau lebih baru pada mesin setiap developer untuk `user.groups`.901Anda memerlukan Claude Code v2.1.265 atau lebih baru di server gateway untuk `user.email` dan `user.groups` pada telemetry Desktop dan Cowork, dan Claude Desktop 1.24012 atau lebih baru pada mesin setiap developer untuk `user.groups`.
805 902
903Anda memerlukan Claude Code v2.1.274 atau lebih baru di server gateway untuk `enduser.sub`.
904
806```yaml theme={null}905```yaml theme={null}
807telemetry:906telemetry:
808 forward_to:907 forward_to:
834 933
835Untuk kolektor in-cluster, paparkan melalui HTTPS di alamat internal-nya sendiri, atau jalankan sebagai sidecar dengan variabel diatur.934Untuk kolektor in-cluster, paparkan melalui HTTPS di alamat internal-nya sendiri, atau jalankan sebagai sidecar dengan variabel diatur.
836 935
936Ketika `HTTPS_PROXY` diatur, gateway mengirimkan export melalui proxy itu.
937
938Untuk menjangkau kolektor internal secara langsung, tambahkan ke `NO_PROXY` berdasarkan hostname atau berdasarkan domain dengan titik terkemuka seperti `.internal.example.com`, yang memerlukan Claude Code v2.1.277 atau lebih baru di server gateway. Pastikan gateway dapat menjangkau kolektor tanpa proxy. Entri tanpa titik terkemuka cocok hanya dengan nama yang tepat itu, bukan nama di bawahnya. Rentang CIDR tidak cocok.
939
940Dengan [proxy-only egress](#proxy-only-egress) diaktifkan, izinkan kolektor dalam proxy alih-alih, karena entri `NO_PROXY` apa pun menjaga proxy-only egress tetap mati.
941
837Telemetry off dalam CLI secara default. Ketika Anda mengatur `telemetry.forward_to` dan `listen.public_url`, gateway mengaktifkannya untuk klien yang terhubung dengan mendorong enam variabel lingkungan melalui `/managed/settings`:942Telemetry off dalam CLI secara default. Ketika Anda mengatur `telemetry.forward_to` dan `listen.public_url`, gateway mengaktifkannya untuk klien yang terhubung dengan mendorong enam variabel lingkungan melalui `/managed/settings`:
838 943
839* `CLAUDE_CODE_ENABLE_TELEMETRY=1`944* `CLAUDE_CODE_ENABLE_TELEMETRY=1`
908| `limits` | `max_request_header_bytes` | unset | Ketika diatur, header yang terlalu besar mengembalikan `431` |1013| `limits` | `max_request_header_bytes` | unset | Ketika diatur, header yang terlalu besar mengembalikan `431` |
909| `limits` | `max_url_length` | unset | Ketika diatur, URL yang terlalu panjang mengembalikan `414` |1014| `limits` | `max_url_length` | unset | Ketika diatur, URL yang terlalu panjang mengembalikan `414` |
910| `timeouts` | `upstream_ttfb_ms` | 120000 | Max wait untuk header respons upstream (time to first byte). Response body kemudian stream tanpa wall-clock cap. Berlaku ke jalur upstream Anthropic langsung; setiap penyedia lainnya dibatasi oleh timeout SDK penyedia mereka sendiri. |1015| `timeouts` | `upstream_ttfb_ms` | 120000 | Max wait untuk header respons upstream (time to first byte). Response body kemudian stream tanpa wall-clock cap. Berlaku ke jalur upstream Anthropic langsung; setiap penyedia lainnya dibatasi oleh timeout SDK penyedia mereka sendiri. |
9111016| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Per-IP rate limit pada endpoint device-authorization yang tidak terautentikasi. Naikkan untuk org besar di belakang IP egress bersama atau NAT. Limit ini berlaku hanya ke alur sign-in device-grant, bukan ke inference `/v1/messages`. Lihat [User-code brute-force resistance](/docs/id/claude-apps-gateway-deploy#user-code-brute-force-resistance). || `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Per-IP rate limit pada endpoint device-authorization yang tidak terautentikasi. Naikkan untuk org besar di belakang IP egress bersama atau NAT. [Large rollouts](/docs/id/claude-apps-gateway-deploy#large-rollouts) menunjukkan cara mengukurnya. Limit ini berlaku hanya ke alur sign-in device-grant, bukan ke inference `/v1/messages`. Lihat [User-code brute-force resistance](/docs/id/claude-apps-gateway-deploy#user-code-brute-force-resistance). |
9121017| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device` || `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device`. Ini adalah apa yang menghentikan seseorang dari menebak kode developer lain. [Large rollouts](/docs/id/claude-apps-gateway-deploy#large-rollouts) menunjukkan seberapa jauh untuk menaikkannya. |
913 1018
914Jika Anda meninggalkan kedua daftar `access_control` kosong, yang merupakan default, gateway melayani alamat klien apa pun, jadi hanya jaringan Anda yang membatasi siapa yang dapat menjangkaunya. Itu penting karena gateway dapat mendorong [pengaturan terkelola](#managed) yang menjalankan perintah pada mesin developer.1019Jika Anda meninggalkan kedua daftar `access_control` kosong, yang merupakan default, gateway melayani alamat klien apa pun, jadi hanya jaringan Anda yang membatasi siapa yang dapat menjangkaunya. Itu penting karena gateway dapat mendorong [pengaturan terkelola](#managed) yang menjalankan perintah pada mesin developer.
915 1020
973store:1078store:
974 postgres_url: ${GATEWAY_POSTGRES_URL}1079 postgres_url: ${GATEWAY_POSTGRES_URL}
975 # max_connections: 51080 # max_connections: 5
1081 # connect_timeout_seconds: 5
976 1082
977# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)1083# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)
978# and per-developer spend enforcement on /v1/messages. Omit to disable.1084# and per-developer spend enforcement on /v1/messages. Omit to disable.