Files
opantoantro/docs/wiki/ProxyEngine.md
T
Beyhan Ogur a408821410 first commit
2026-05-11 15:08:50 +03:00

42 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ProxyEngine
**Özet:** HTTP isteklerini upstream backend'e ileten merkezi proxy motoru (`internal/proxy/proxy.go:24`). Tüm header'ları korur, hassas header'ları log'da maskeler, hop-by-hop header'ları otomatik atlar.
**Kütüphaneler:** Go `net/http`, `context`, `io`
**Bağlantılar:** [[OpenAIHandler]], [[AnthropicHandler]], [[Index]]
## Struct
```go
type ForwardResult struct {
StatusCode int
Body []byte
Headers http.Header
}
```
## Fonksiyonlar
### `Forward(ctx, method, targetURL, headers, body, timeoutSec) *ForwardResult`
- HTTP isteğini hedef URL'ye iletir
- Context üzerinden timeout yönetimi (`time.Duration(timeoutSec) * time.Second`)
- Hop-by-hop header'ları atlar: `Connection`, `TE`, `Trailers`, `Transfer-Encoding`, `Upgrade`
- Body'yi log için okur, sonra tekrar sarar
- `ForwardResult{StatusCode, Body, Headers}` döndürür
### `MaskSensitiveHeaders(headers) http.Header`
- Header'ları clone'lar
- `Authorization``Bearer [REDACTED]`
- `X-Api-Key``[REDACTED]`
- Sadece loglama amaçlı kullanılır; upstream'e orijinal header gider
### `truncateForLog(s, maxLen) string`
- Uzun string'leri `maxLen` (2000) karakterde kırpar, `...[TRUNCATED]` ekler
## Güvenlik
- Hassas header'lar upstream'e **olduğu gibi** iletilir ama **log'da maskelenir**
- Hop-by-hop header'lar otomatik atlanır (proxy zincirini bozmamak için)
- Sensitive header masking sadece log çıktısı içindir