<!-- https://avertgate.com/tr/docs/approvals · Operasyon -->

# Onay akışı (Slack)

Geri alınamaz ya da dış etkili eylemler çalışmadan önce bir insanın onayını bekler. Onay Slack üzerinden verilir.

## Akış

1. Gate bir çağrıyı ESCALATE eder ve benzersiz bir onay kimliği üretir.
2. Slack webhook'una onayla/reddet bağlantılı bir mesaj gönderilir.
3. Gate bekler. Yetkili kişi bağlantılardan birine tıklar.
4. Onay → çağrı devam eder. Ret ya da zaman aşımı → BLOCK.

> **Argümanlar maskelenmez**: Slack mesajı çağrının argümanlarını (`args`) olduğu gibi içerir. Denetim kaydındaki maskeleme burada uygulanmaz. Kanala yalnızca onay yetkisi olan kişileri alın. Varsayılan bekleme süresi 2 dakikadır (`APPROVAL_TIMEOUT_MS`); süre dolarsa çağrı engellenir.

## Güvenlik özellikleri

- **Tek kullanımlık:** Aynı kimliğe ikinci tıklama 404 döner; çift onay olmaz.
- **CSRF belirteci:** Her bekleyen onay kendi belirtecini taşır.
- **Fail-closed:** Zaman aşımı hep engeldir.
- **Yapılandırma eksikliği:** `SLACK_WEBHOOK_URL` var ama `APPROVAL_BASE_URL` yoksa tüm yükseltmeler engellenir.

## Yapılandırma

| Değişken | Varsayılan | Açıklama |
| --- | --- | --- |
| `SLACK_WEBHOOK_URL` | — | Slack gelen webhook adresi. |
| `APPROVAL_BASE_URL` | — | Onay bağlantılarının dışarıdan erişilebilir tabanı. |
| `APPROVAL_PORT` | `3001` | Onay HTTP sunucusu portu. |
| `APPROVAL_TIMEOUT_MS` | `120000` | Bekleme süresi (ms). |
