Tüm isteklerde X-Tenant header’ı zorunludur. Dosyalar her zaman belirli bir varlığa (hasta, personel vb.) bağlanmak zorundadır ve hiçbir dosya başka bir tenant’a ait bir varlığa yüklenemez/ilişkilendirilemez.
Dosyalar için güncelleme (PUT) endpoint’i bulunmamaktadır. Değişiklik gerekirse mevcut dosya silinip yenisi yüklenmelidir.
Endpoint özeti
| Metot | Endpoint | Açıklama |
|---|
GET | /api/v1/files | Dosyaları filtreli olarak listeler |
GET | /api/v1/files/{id} | Tek bir dosyanın detaylarını getirir |
POST | /api/v1/files | Yeni dosya yükler (multipart/form-data) |
DELETE | /api/v1/files/{id} | Dosyayı soft delete eder |
DELETE | /api/v1/files/{id}/force | Dosyayı kalıcı olarak siler (storage dahil) |
Tüm parametreler, alanlar ve örnek istek/yanıtlar için API Referansı sekmesine bakın.
Dosya kavramı
Sistemdeki dosyalar; hastalara (müşterilere), personellere (kullanıcılara), tenant’ın kendisine veya sistemdeki diğer kayıtlara (yapay zeka raporları, sohbet kayıtları vb.) eklenen doküman, görsel veya raporları temsil eder.
API size doğrudan fiziksel dosyayı (byte array olarak) dönmez; bunun yerine dosyanın meta verilerini ve dosyaya güvenli bir şekilde erişebileceğiniz kısa ömürlü geçici linkleri (temporary_url) döner.
İş kuralları
Dosya yükleme formatı: Bu istek JSON olarak yapılamaz. Body formatı kesinlikle multipart/form-data olmalıdır. Maksimum dosya boyutu 50 MB (51200 KB)‘dır.
Tenant izolasyonu: fileable_id ile belirtilen varlık, işlemi yapan tenant’a ait olmak zorundadır.Hata mesajı: The selected fileable does not belong to this tenant.
Silme kuralları
Force delete (DELETE /api/v1/files/{id}/force)
Geri alınamaz. Dosya hem veritabanından kalıcı olarak silinir hem de fiziksel storage (S3 vb.) üzerinden temizlenmesi tetiklenir.
Yetkilendirme
Uygulama izinleri (permissions)
| İşlem | Permission |
|---|
| Listeleme | ViewAny:File |
| Detay / Tek gösterme | View:File |
| Dosya yükleme | Create:File |
| Silme (soft delete) | Delete:File |
| Kalıcı silme (force delete) | ForceDelete:File |
Token scope’ları (Passport)
| İşlem | Scope |
|---|
Okuma (index, show) | files:read |
Yazma (store, destroy, forceDelete) | files:write |