
# Bir bağlantının konu çakışmalarını listeleyin

`GET /v1/connections/{connection_id}/subject-conflicts` · izin `users:read`

Bir kuruluşun (SAML veya OIDC) kurumsal bağlantısındaki SSO konu çakışmalarını en yeniden en eskiye doğru listeler.

Kimlik sağlayıcı, aynı bağlantıda farklı bir konuyla zaten bağlı olan bir kullanıcının doğrulanmış e-posta adresini taşıyan **yeni bir konu** gönderdiğinde konu çakışması kaydedilir. Bu, örneğin eski bir çalışanın posta kutusunun yeni bir çalışana verilmesi durumunda gerçekleşir. KeenAuth yeni konuyu otomatik olarak bağlamaz: giriş `sso_subject_conflict` ile reddedilir ve bir yöneticinin [çözümlemesi](resolve-subject-conflict.md) için bir kayıt açılır.

- Bir kayıt açık olduğunda, aynı konuyla yapılan diğer girişler yeni kayıt açmak yerine bu kaydı günceller.
- Açık bir kayıt, açıldığı tarihten 30 gün sonra sona erer.
- Kayıtlar hiçbir zaman dış konuyu veya e-posta adresini içermez.

İzin `users:read` olarak belirlenmiştir çünkü bir kayıt bir kullanıcı hesabıyla ilgilidir; çözümlemek için `users:write` gerekir.

## İstek

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `connection_id` | yol | evet | Bağlantı kimliği (`conn_…`). |
| `limit` | sorgu | hayır | Sayfa boyutu, 1–100 (varsayılan 20). |
| `after` / `before` | sorgu | hayır | `list_metadata` değerinden alınan imleç. İmleç yalnızca onu üreten bağlantı için çalışır. |
| `order` | sorgu | hayır | Oluşturulma zamanına göre `desc` (varsayılan) veya `asc`. |

## Yanıt

`200 OK`:

```json
{
  "data": [
    {
      "id": "sscf_01j9xr4a6b8c0d2e4f6g8h0j2k",
      "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
      "user_id": "usr_01j9xm2n4p6q8r0s2t4v6w8x0y",
      "status": "open",
      "resolution": null,
      "created_at": "2026-10-28T10:00:00Z",
      "last_seen_at": "2026-10-28T10:05:00Z",
      "expires_at": "2026-11-27T10:00:00Z",
      "closed_at": null
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
```

| Alan | Açıklama |
|---|---|
| `user_id` | Doğrulanmış e-posta adresinin sahibi olan ve bu bağlantıya başka bir konuyla zaten bağlı kullanıcı. |
| `status` | `open` (karar bekleniyor), `resolved` veya `expired` (açıldıktan 30 gün sonra karar verilmeden kapandı). |
| `resolution` | `same_person` veya `different_person`; yalnızca `status` `resolved` olduğunda ayarlanır. |
| `last_seen_at` | Yeni konuyla yapılan en son giriş denemesi. |
| `closed_at` | Kaydın çözümlendiği veya sona erdiği zaman; kayıt açıkken `null`. Sona ermiş bir kayıt da `null` gösterebilir. |

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 400 | `invalid_cursor` | İmleç bozuk veya başka bir bağlantıya ya da sorguya ait. |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinde `users:read` izni yok. |
| 404 | `not_found` | Bağlantı bu ortamda mevcut değil. |
| 422 | `validation_failed` | Bir sorgu parametresi geçersiz (örneğin `limit` 100'ün üzerinde). |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/subject-conflicts?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections subject-conflicts list conn_01j9xp6q0r1s5t7v9w1x3y5z7b --limit 20
```
