30 uç · /api/musavir/v1/sozlesmeler
İ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.
idModül kendi log tablosunu YAZMAZ: kendi tablosunu yazan bir modül çekirdeğin WORM garantilerini kaybeder ve "denetim izi" adını hak etmeyen, silinebilir bir log elde eder.
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/bildirim-hatirlatma" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}id"bu ROLÜN RUTİN İŞİ mi?". Not düşmek `muhasebe_elemani`/`stajyer`in günlük işidir ve ellerindeki tek izin `V_MUKELLEF`'tir; `.manage` istemek not defterini onlara kapatır. Not WORM olduğu için yanlış yazılan bir not "geri alınamaz idari eylem" de değildir — düzeltmesi yeni bir nottur.
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/ekler" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X DELETE "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/ekler/<ek_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}id🔴 `mukellef_ref` GÖVDEDEN OKUNMAZ — sözleşmeden türetilir. Gövdeden alınsaydı, kapsam kapısını sözleşme üzerinden geçen bir personel, belgeyi BAŞKA bir müvekkilin dosyasına arşivleyebilirdi (portal.rs'in aynı kuralı: kimlik gövdeden gelmez).
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/ekler/yukle" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idModül kendi log tablosunu YAZMAZ: kendi tablosunu yazan bir modül çekirdeğin WORM garantilerini kaybeder ve "denetim izi" adını hak etmeyen, silinebilir bir log elde eder.
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/gecmis" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}id🔴 Sağlayıcı çağrı yerinde SABİT değil (MÜF9 Paket 10 · BLE2-7859) — `&StubGibIptalBildirim` yazıyordu. `kuyruk_gonder_h`teki gerekçenin aynısı: yapılandırma hatası kuyruğa yazılmaz.
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/imza" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}id"bu ROLÜN RUTİN İŞİ mi?". Not düşmek `muhasebe_elemani`/`stajyer`in günlük işidir ve ellerindeki tek izin `V_MUKELLEF`'tir; `.manage` istemek not defterini onlara kapatır. Not WORM olduğu için yanlış yazılan bir not "geri alınamaz idari eylem" de değildir — düzeltmesi yeni bir nottur.
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/<id>/notlar" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}🔴 `mukellef.manage` — `.view` DEĞİL. Uç, kalıcı kayıt yazar ve personele bildirim atar; makine seam'idir, rutin okuma işi değil. (MÜF1'de `takvim POST /hatirlatilacaklar` aynı gerekçeyle `.manage`e alınmıştı: damga geri alınamaz.) 🔴 Kapsam süzgeci YOK — ve bu BİLEREK: tarama BÜRO GENELİNDE koşar. Kapsamlı koşsaydı hatırlatmanın üretilip üretilmemesi, işi TETİKLEYEN personelin portföyüne bağlı olurdu; aynı sözleşme bir personel tetiklediğinde uyarı üretir, başkası tetiklediğinde üretmezdi. Yükümlülük büronundur, tetikleyenin değil. Uç yalnız SAYI döndürür (hangi müvekkil, hangi sözleşme bilgisini SIZDIRMAZ); ayrıntıyı herkes kendi kapsamlı listesinden görür.
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/bildirim-hatirlatma/calistir" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}🔴 Mükellef unvanı burada da çıkıyor → aynı formül-enjeksiyonu riski. Savunma TEK YERDE (`grid::csv_hucre`): iki ayrı export'un iki ayrı kaçış mantığı olsaydı, biri güncellenip diğeri unutulurdu.
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/export" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}🔴 Mükellef unvanı burada da çıkıyor → aynı formül-enjeksiyonu riski. Savunma TEK YERDE (`grid::csv_hucre`): iki ayrı export'un iki ayrı kaçış mantığı olsaydı, biri güncellenip diğeri unutulurdu.
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/grid-export" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}gönderir). 1 MiB body tavanı `apply_standard_middleware`'den gelir. `?onizleme=true` ile AYNI uç, yazmadan çalışır: sihirbazın "önce göster" adımı gerçek akışın kod yolundan geçer (bkz. [`Kip::Dogrula`]) — ayrı bir doğrulama ucu yazsaydık iki kural kümesi ayrışır ve ön izleme yalan söylerdi.
curl -X POST "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/import" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}söylüyor, aynı kişi listede o biçimde basılmış gerçek numaraları zaten görüyor. Okuyabildiği bir şeyin şablonunu saklamak hiçbir şeyi korumaz.
curl -X GET "https://{slug}.musavir.blesyum.app/api/musavir/v1/sozlesmeler/numaralama" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}