Müşavir

guvenlik

30 uç · /api/musavir/v1/guvenlik

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 30 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/musavir/v1/guvenlik/aktarim/alicilar

Katalog + bu büronun her alıcı için güncel dayanağı — tek çağrıda.

Oturum

🔴 İkisi AYRI uçta olsaydı ekran ikisini istemcide eşleştirir ve bir alıcı katalogda olup dayanağı gelmediğinde satır sessizce "dayanaksız" görünürdü. Eşleştirme sunucuda.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/alicilar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/aktarim/aydinlatma-bolumu

Aydinlatma bolumu

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/aydinlatma-bolumu" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/aktarim/dayanaklar

Dayanaklar

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/dayanaklar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/aktarim/dayanaklar

Dayanak yaz

Oturum
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/dayanaklar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/aktarim/defter

BLE-7015/8084/8098 · AI Cevaplar defteri.

Oturum

🔴 SÜZGEÇ SORGUNUN İÇİNDEDİR (Paket 2 · 8009'un aynı dersi). limitten SONRA süzen bir uç, üç ay önce sorulmuş bir soru arandığında "sonuç yok" der — doğru cümle, YANLIŞ sebep; çünkü süzgeç yalnız en yeni 200 satırı görmüştür. Buradaki her yüklem SQL'dedir ve toplam süzgeçten SONRA, limitten ÖNCE sayılır: ekran "200'den fazlası var" diyebilsin. 🔴 TANINMAYAN SÜZGEÇ DEĞERİ BOŞ LİSTE DEĞİL 400'DÜR. durum=cevaplandı (Türkçe i) yazan bir çağrı sessizce sıfır satır alsaydı, kullanıcı "hiç cevaplanmış sorum yok" sonucunu çıkarırdı — oysa yazdığı değer hiç var olmayan bir durumdur.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/defter" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/aktarim/ozet

Uyum özeti — BÜRO GENELİ sayılar.

Oturum

🔴 aktarim_uyum_ozeti security definerdır: kapsam kilidi DETAYI gizler (bir müvekkilin adı, onu göremeyen personele sızmaz) ama uyum SAYISI eksik okunmamalıdır. Kapsamlı bir personel "3 dayanaksız aktarım" yerine "0" görseydi, gördüğü sıfır bir güvence olurdu — P7'nin 72 saat sayacının birebir aynı ayrımı. Fonksiyon hiçbir müvekkil kimliği döndürmez.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/aktarim/ozet" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/anomali

Anomali

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/anomali" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/barindirma

Denetim

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/barindirma" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/butunluk

core.audit_log bütünlük doğrulaması (BLE22-8763).

Oturum

🔴 WORM trigger'ı (0001, LOG-14) UPDATE/DELETE'i zaten reddeder; bu uç onun YEDEĞİ DEĞİL, TAMAMLAYICISIdır: trigger'ı atlayabilen tek aktör (BYPASSRLS rolü, DBA, doğrudan disk) satır-başına entry_hashi düzeltemez. "Kapı var" ile "kapının açılmadığını ölçen bir şey var" farklı iki şeydir.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/butunluk" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/denetim-log.csv

Denetim defterini CSV olarak dışa aktar (KVKK talebi / dış denetim).

Oturum

🔴 Kapsam elemesi BURADA YENİDEN YAZILMAZ: [crate::denetim_log::listele] sayfa sayfa çağrılır. İkinci bir kopya, bu modülde tam olarak beş kez tekrarlanmış "ekranda süzülü, dışa aktarmada süzülmemiş" kusurunun altıncısı olurdu (grid.rsin export'u aynen böyle kapsam körüydü).

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/denetim-log.csv" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/erisim

BLE-7015/8084/8098 · AI Cevaplar defteri.

Oturum

🔴 SÜZGEÇ SORGUNUN İÇİNDEDİR (Paket 2 · 8009'un aynı dersi). limitten SONRA süzen bir uç, üç ay önce sorulmuş bir soru arandığında "sonuç yok" der — doğru cümle, YANLIŞ sebep; çünkü süzgeç yalnız en yeni 200 satırı görmüştür. Buradaki her yüklem SQL'dedir ve toplam süzgeçten SONRA, limitten ÖNCE sayılır: ekran "200'den fazlası var" diyebilsin. 🔴 TANINMAYAN SÜZGEÇ DEĞERİ BOŞ LİSTE DEĞİL 400'DÜR. durum=cevaplandı (Türkçe i) yazan bir çağrı sessizce sıfır satır alsaydı, kullanıcı "hiç cevaplanmış sorum yok" sonucunu çıkarırdı — oysa yazdığı değer hiç var olmayan bir durumdur.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/erisim" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/erisim/supur

Supur

Oturum
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/erisim/supur" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/ihlaller

Bakiye + defter.

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller

Olustur

Oturum
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/ihlaller/{id}

Bir beyannamenin mükellefe görünen tam hâli.

OturumYol parametresi: id

🔴 404 mesajı "yetkiniz yok" DEMEZ ve dememeli: RLS satırı zaten elediği için başka bir müvekkilin beyannamesi ile hiç var olmayan bir id **ayırt edilemez** — ayırt edilebilseydi uç, "bu büroda şu id'de bir beyanname var mı" sorusunu cevaplayan bir sızıntı olurdu.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller/{id}/bildir

Etkilenen müvekkillere bildirim turu.

OturumYol parametresi: id

Kapsam: tur çağıranın kapsamıyla koşar (mukellef::kapsam(); donmuş listede kapsam dışı bir satır varsa portal yazımı RLS'te düşer — ve bu doğrudur: kapsamı olmayan personel başkasının müvekkiline bildirim gönderemez.

İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/bildir" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller/{id}/degerlendirme

Değerlendirme: karar + etkilenen listesinin DONDURULMASI.

OturumYol parametresi: id

Kapsam kapısı [degerlendir]in İÇİNDEDİR (mukellef::kapsam( ile alınan görünürlük yüklemine bakar): listedeki her müvekkil çağıranın kapsamında olmalıdır, hepsi ya da hiçbiri.

İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/degerlendirme" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller/{id}/kapat

Kapat

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/kapat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller/{id}/kurum-beyani

Kurum beyani

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/kurum-beyani" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/ihlaller/{id}/kurum-metni

Kurul'a kopyalanacak bildirim metni.

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/kurum-metni" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/ihlaller/{id}/not

Not

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/ihlaller/<id>/not" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/kasa

GET — seçili sağlayıcı + sağlık paneli verisi (BLE2-8271).

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/kasa" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/kasa/rotasyon

Rotasyon

Oturum
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/kasa/rotasyon" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/musavir/v1/guvenlik/kasa/yeniden-muhurle

Supurge

Oturum
İstek
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/kasa/yeniden-muhurle" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/politika

Oku

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/politika" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/musavir/v1/guvenlik/politika

Eşleme yaz (upsert). Hedef, müvekkilin planında ÇALIŞIR bir YAPRAK hesap olmak zorunda.

Oturum
İstek
curl -X PUT "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/politika" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/worm

Envanter

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/worm" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/worm/tarama

Tarama

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/worm/tarama" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/yedek/durum

GET — seçili sağlayıcı + sağlık paneli verisi (BLE2-8271).

Oturum
İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/yedek/durum" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/musavir/v1/guvenlik/yedek/tatbikatlar

BLE-7015/8084/8098 · AI Cevaplar defteri.

Oturum

🔴 SÜZGEÇ SORGUNUN İÇİNDEDİR (Paket 2 · 8009'un aynı dersi). limitten SONRA süzen bir uç, üç ay önce sorulmuş bir soru arandığında "sonuç yok" der — doğru cümle, YANLIŞ sebep; çünkü süzgeç yalnız en yeni 200 satırı görmüştür. Buradaki her yüklem SQL'dedir ve toplam süzgeçten SONRA, limitten ÖNCE sayılır: ekran "200'den fazlası var" diyebilsin. 🔴 TANINMAYAN SÜZGEÇ DEĞERİ BOŞ LİSTE DEĞİL 400'DÜR. durum=cevaplandı (Türkçe i) yazan bir çağrı sessizce sıfır satır alsaydı, kullanıcı "hiç cevaplanmış sorum yok" sonucunu çıkarırdı — oysa yazdığı değer hiç var olmayan bir durumdur.

İstek
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/guvenlik/yedek/tatbikatlar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?