Sunucu saati — **PUBLIC**, oturum istemez, veritabanına HİÇ gitmez.
İki işi birden yapar ve bu yüzden ayrı iki uç açılmamıştır: 1. **Saat referansı.** Panel, cihaz saatinin sapmasını ölçüp kullanıcıya söyler (frontend `lib/clock.ts`). Sapma yalnız kozmetik değildir: >45 sn kaymış bir cihazın TOTP kodu reddedilir ve kullanıcı bunu "2FA bozuk" diye okur. 2. **Bağlantı yoklaması.** Kesintide panel bu ucu geri-çekilmeli olarak yoklar (frontend `lib/connection.ts`). Kenarın `/healthz`'i bu soruyu yanıtlamaz: Caddy ayakta, arkadaki auth ölü olabilir — bu uç yanıt veriyorsa panelin gerçekten konuştuğu servis ayaktadır. 🔴 Gövde KASITLI olarak minik ve DB'siz: kesinti sırasında saniyede birden çok istemci tarafından yoklanır; zaten zorlanan bir sisteme yük bindirmemeli. GET /api/v1/i18n/locales — **PUBLIC**. Platformun sunduğu diller. PUBLIC olmak ZORUNDA: giriş ekranının da dil seçicisi vardır ve oturum açmadan önce dil seçebilmek, kullanıcının paneli okuyabilmesinin ön koşuludur. `core.languages` (mig 0023) yerine `core.locales` okunur: eskisi yalnız code/name/enabled taşıyordu, yön (rtl) ve fallback zinciri yoktu. `POST /api/v1/docs/feedback` — **PUBLIC**. Doküman sayfası geri bildirimi. # Neden oturumsuz `apidocs.blesyum.com` herkese açıktır; okuyucularının önemli bir kısmı henüz müşteri değildir. Giriş isteyen bir kutu, tam da duymamız gereken kitleyi susturur. # Mükerrer koruması SUNUCUDADIR İstemcideki `localStorage` işareti yalnız bir KOLAYLIKTIR (aynı sayfaya dönene "zaten oy verdin" demek için). İşareti silen biri yine ikinci kez oy veremez, çünkü kapı `doc_feedback_visitor_uk` unique indeksidir. (Aynı ders geçici-parola vakasında alınmıştı: *"paneldeki pencere çözüm değildi"*.) Karar ve SQL `blesyum_site::dokuman`dadır — bu servis ham SQL yazmaz.
curl -X POST "https://api.blesyum.com/api/v1/docs/feedback" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}