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

# Denetim kaydı

Her çağrı, sonucu ne olursa olsun, yalnızca-ekleme (append-only) bir günlüğe yazılır. Kayıtlar SHA-256 ile birbirine zincirlenir; sonradan değişiklik tespit edilebilir.

## Bir olay neleri içerir?

| Alan | Anlam |
| --- | --- |
| `timestamp` | Olay zamanı. |
| `orgId`, `agentId`, `sessionId`, `correlationId` | Kim, hangi oturum, hangi çağrı. |
| `tool`, `argsRedacted` | Araç ve **maskelenmiş** argümanlar. |
| `policyVerdict`, `egressVerdict`, `ingressVerdict` | Aşama aşama sonuçlar. |
| `finalDecision`, `reason`, `ruleId` | Nihai karar ve gerekçe. |
| `latencyMs`, `isShadow` | Gecikme ve shadow bilgisi. |
| `prevHash`, `entryHash` | Zincir bağlantısı. |
| `traceId`, `spanId` | OpenTelemetry izi. |

## Zincir nasıl çalışır?

Her kaydın `entryHash` değeri, kaydın tüm güvenlik açısından önemli alanlarının kanonik (anahtarları sıralı) JSON serileştirmesinden SHA-256 ile hesaplanır ve önceki kaydın hash'ini içerir.

Bir kaydı değiştirmek, silmek, araya eklemek ya da sırasını bozmak zinciri kırar ve doğrulama **tam olarak hangi satırda** bozulma olduğunu gösterir.

## Doğrulama ve raporlama

<!-- terminal -->
```
avertgate verify --db ./avertgate.sqlite
avertgate report --format markdown --output rapor.md
```

> **Uyum**: Zincirli günlük, sonradan yapılan değişikliklerin tespit edilmesini sağlar. Kendi başına bir uyumluluk sertifikasyonu değildir.

## Maskeleme

Denetim kaydı argümanları *maskelenmiş* biçimde saklar. Control plane'e yalnızca bu maskelenmiş olaylar gider.
