> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Hız sınırlama

İstismara duyarlı her rota için tek sınırlayıcı.

## Başlangıç seviyesinde izlenecek yol

Önkoşullar: Aşağıdaki iki başlangıç kılavuzunu okuyun, Web yerel kurulumunu tamamlayın ve bu monorepo'yu düzenleyicinizde kökünden açın. Web ayarları `apps/web/.env.local`'ye aittir; Next.js, `.env` kökünü okumaz. Varsayılan sahte modda `/dashboard`, veritabanı olmayan bir demodur; `/auth`'nin taşınan bir veritabanına ihtiyacı var.

Kısa terimler: Çalışma alanı, bir ekibin ayrı kullanıcıları, verileri ve ayarlarıdır. Sunucu güvenilir arka uçtur; sağlayıcı anahtarlarını tarayıcı ve telefon kodundan uzak tutun. Geçiş, tabloları oluşturan veya güncelleyen sürümlü bir veritabanı değişikliğidir. Yapay zeka modeli yanıt veren motordur; model kataloğu, sunucunun mevcut model kimlikleri ve fiyatlarının listesidir. Sağlayıcı yapay zeka, e-posta veya faturalandırma hizmeti gibi bir dış hizmettir. Yetki, bir çalışma alanının bir özelliği kullanmasına olanak tanıyan bir yetkidir. Web kancası, bir hizmetin başka bir hizmetin URL'sine gönderdiği bir mesajdır.

1. Sunucu ortamında, paylaşılan üretim grupları için `RATE_LIMIT_STORE=postgres`'yi seçin ve `PUBLIC_AI_DAILY_BUDGET_MICROUNITS=0`'yi genel AI'yı devre dışı bırakacak şekilde ayarlayın.

2. `TRUSTED_PROXY_COUNT`'yi yalnızca yönlendirme başlıklarını ekleyen kontrollü proxy'lerin tam sayısına ayarlayın; Ana makineniz için geçerli olmadığı sürece `1`'yi kopyalamayın.

3. Reddedilen bir isteğin yeniden deneme açısından güvenli bir hata döndürdüğünü doğrulayın. Sınırlar örnekler arasında farklılık gösteriyorsa Postgres paylaştıklarını kontrol edin.

Özel kod için, sağlanan `prompts/README.md` ile başlayın ve en yakın istemi kopyalayın: Bir uygulama ekranı için `prompts/new-app-screen.md` veya genel bir sayfa için `prompts/new-landing-page.md`. Sunucu, veritabanı veya sağlayıcı çalışması için kodlama temsilcinize bu kılavuzun görevini verin ve ondan `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` ve eşleşen `.ai/` aynalarını okumasını isteyin; burada adı geçen kaynak dosyaların tamamını inceleyin; düzenlemeden önce dosyaları ve kontrolleri listeleyin; çalışma alanı sahipliğini ve yalnızca sunucuya ait sırları koruyun; ve size farkı göstereceğim. İstediğiniz davranışı, giriş ve çıkış alanlarını, izin verilen rolleri, beklenen başarıyı ve hataları ve test hesabını, sağlayıcıyı veya cihazı ona bildirin. Örnek değerleri kullanın; asla gerçek bir sırrı yapıştırmayın.

[Başlamadan önce](https://supastack.dev/tr/docs/web/before-you-start.md)

[Terminal temelleri](https://supastack.dev/tr/docs/web/terminal-basics.md)

[Web yerel kurulumu](https://supastack.dev/tr/docs/web/ship-in-5-minutes.md)

[Aracı istemleri ve proje belleği](https://supastack.dev/tr/docs/web/agents.md)


## Sınırlayıcı mağazasını seçin

`RATE_LIMIT_STORE` bellek veya postgres'tir. Ayarlanmadığında üretim Postgres'yi seçer ve diğer ortamlar belleği seçer. Paylaşılan `rate_limit_bucket` satırları birden fazla sunucuyu koordine eder; mağaza hataları şu anda API kullanılabilirliğini korumak için başarısız oluyor.

Çalışma alanı/kullanıcı yapay zeka gönderim sınırları ve genel API/MCP sınırlayıcı, ayrı yüzeyleri korur. Rotaları eklerken arayana özel mevcut paket anahtarlarını koruyun.


## Yalnızca kontrollü proxy atlamalarına güvenin

`TRUSTED_PROXY_COUNT`, 0-10 arasında değişir ve `x-forwarded-for`'yi ekleyen ters proxy'leri sayar. Zero hiçbirine güvenmez ve paylaşılan, bilinmeyen bir grup kullanır; Kontrollü bir proxy'nin genellikle 1'e ihtiyacı vardır. Yanlış bir sayım, güvenilmeyen iletilen değerlerin sınırlayıcıyı etkilemesine olanak tanır.


## Anonim sağlayıcı harcamasını sınırlayın

`PUBLIC_AI_DAILY_BUDGET_MICROUNITS=0` genel AI çağrılarını devre dışı bırakır. Negatif olmayan bir günlük UTC üst sınırı, sağlayıcı çağrılarından önce platform harcamasını ayırır ve her çalışma alanının bütçesinden ayrıdır. Herhangi bir faturalandırılabilir sağlayıcı denemesinden önce eşzamanlı rezervasyonları test edin, sınırları sıfırlayın ve reddet.

```
RATE_LIMIT_STORE=postgres
TRUSTED_PROXY_COUNT=1
PUBLIC_AI_DAILY_BUDGET_MICROUNITS=0
```


## Kurulum ve yapılandırma

rate-limit-runtime, istismara duyarlı yüzeylere bağlı paylaşılan sınırlayıcılar sağlar — apiV1Limiter (dakikada 600 istek) ve authLimiter (dakikada 300 istek) gönderilen hazır ayarlardır. Sınırlar kimlik artı rota kovasına göre anahtarlanır ve genel bir hata yerine Retry-After taşıyan yeniden denenebilir bir 429 ile yanıt verir.

Yeni istismara duyarlı uç noktalar — oturum açma, OTP, ödeme, görev gönderimi, anahtar oluşturma — için rota başına ayrılan sayaçlar icat etmek yerine mevcut sınırlayıcıyı genişletin.

```
export const apiV1Limiter = createNamedRateLimiter("api-v1", 600, 60_000);
export const authLimiter = createNamedRateLimiter("auth", 300, 60_000);
```


## Uygulama iş akışı

Anahtarı dikkatle seçin: kimliği doğrulanmış eylemler için kullanıcı başına, genel trafik için API anahtarı başına, anonim uç noktalar için IP başına yalnızca son çare olarak. Meşru patlamalar bir Retry-After alır; saldırılar sert bir tavana çarpar.

İstismara duyarlı rotalarda sınırlayıcıyı fail-closed tutun — depo erişilemezse, sınırsız geçmesine izin vermek yerine pahalı işi reddetmeyi tercih edin.


## Doğrulama ve sorun giderme

Bir sınırlayıcıyı makul bir Retry-After ile 429 döndürene kadar çalıştırın, farklı workspace'lerin bağımsız kovalar aldığını doğrulayın ve bir patlamanın pencereden sonra başarıya döndüğünü onaylayın. Reddetmeleri isteğin hassas yükü olmadan günlüğe kaydedin.


## Sonraki

[YZ ve arka plan işleri](https://supastack.dev/tr/docs/modules/ai.md)
