files
Files
Signed upload/download URLs for object storage.
5 نقاط النهاية
DELETE /api/v1/files/{id}
Delete a file: removes the storage object and the row. Audited.
معطيات المسار والاستعلام
| الاسم | الموضع | النوع | القيود |
|---|---|---|---|
idمطلوب | path | string | — |
مثال بأمر curl
curl -X DELETE "https://your-institute.example/api/v1/files/37386ae0-3738-7738-8386-37386ae03738" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"الاستجابات
لا يحدّد ملف OpenAPI الخاص بالواجهة مخطّطًا مكتوبًا لهذه الاستجابة بعد — الاستجابة لا تزال JSON صالحًا، لكنها غير موثّقة هنا.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
GET /api/v1/files/{id}
Get file metadata plus a short-lived (5 min) signed download URL.
معطيات المسار والاستعلام
| الاسم | الموضع | النوع | القيود |
|---|---|---|---|
idمطلوب | path | string | — |
مثال بأمر curl
curl -X GET "https://your-institute.example/api/v1/files/37386ae0-3738-7738-8386-37386ae03738" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"الاستجابات
| الاسم | النوع | القيود |
|---|---|---|
idمطلوب | string (uuid) | — |
kindمطلوب | enum: "avatar" | "document" | "report" | "attachment" | — |
originalNameمطلوب | string | — |
mimeTypeمطلوب | string | — |
sizeBytesمطلوب | integer | -9007199254740991–9007199254740991 |
sha256مطلوب | string | — |
entityTypeمطلوب | string | null | ≥1 chars |
entityIdمطلوب | string (uuid) | null | — |
createdAtمطلوب | string (date-time) | — |
downloadUrlمطلوب | string | — |
downloadUrlExpiresAtمطلوب | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"kind": "avatar",
"originalName": "string",
"mimeType": "string",
"sizeBytes": -9007199254740991,
"sha256": "string",
"entityType": "string",
"entityId": "81693677-8169-7169-8693-816936778169",
"createdAt": "2026-03-02T09:00:00.000Z",
"downloadUrl": "string",
"downloadUrlExpiresAt": "2026-03-02T09:00:00.000Z"
}تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
POST /api/v1/files/complete
Finalize an upload after the client has PUT the object to its signed URL.
محتوى الطلب
| الاسم | النوع | القيود |
|---|---|---|
fileId | string (uuid) | — |
storageKeyمطلوب | string | 1–1024 chars |
sha256مطلوب | string | — |
kindمطلوب | enum: "avatar" | "document" | "report" | "attachment" | — |
originalNameمطلوب | string | 1–255 chars |
mimeTypeمطلوب | enum: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | "application/pdf" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "text/csv" | — |
sizeBytesمطلوب | integer | 1–20971520 |
entityType | string | 1–100 chars |
entityId | string (uuid) | — |
مثال
{
"fileId": "0daca32e-0dac-7dac-8aca-0daca32e0dac",
"storageKey": "string",
"sha256": "string",
"kind": "avatar",
"originalName": "string",
"mimeType": "image/jpeg",
"sizeBytes": 1,
"entityType": "string",
"entityId": "81693677-8169-7169-8693-816936778169"
}مثال بأمر curl
curl -X POST "https://your-institute.example/api/v1/files/complete" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"fileId": "0daca32e-0dac-7dac-8aca-0daca32e0dac",
"storageKey": "string",
"sha256": "string",
"kind": "avatar",
"originalName": "string",
"mimeType": "image/jpeg",
"sizeBytes": 1,
"entityType": "string",
"entityId": "81693677-8169-7169-8693-816936778169"
}'الاستجابات
| الاسم | النوع | القيود |
|---|---|---|
idمطلوب | string (uuid) | — |
kindمطلوب | enum: "avatar" | "document" | "report" | "attachment" | — |
originalNameمطلوب | string | — |
mimeTypeمطلوب | string | — |
sizeBytesمطلوب | integer | -9007199254740991–9007199254740991 |
sha256مطلوب | string | — |
entityTypeمطلوب | string | null | ≥1 chars |
entityIdمطلوب | string (uuid) | null | — |
createdAtمطلوب | string (date-time) | — |
downloadUrlمطلوب | string | — |
downloadUrlExpiresAtمطلوب | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"kind": "avatar",
"originalName": "string",
"mimeType": "string",
"sizeBytes": -9007199254740991,
"sha256": "string",
"entityType": "string",
"entityId": "81693677-8169-7169-8693-816936778169",
"createdAt": "2026-03-02T09:00:00.000Z",
"downloadUrl": "string",
"downloadUrlExpiresAt": "2026-03-02T09:00:00.000Z"
}تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
POST /api/v1/files/upload-url
Get a signed URL to upload a new file directly to storage (PUT the object to `uploadUrl`).
محتوى الطلب
| الاسم | النوع | القيود |
|---|---|---|
kindمطلوب | enum: "avatar" | "document" | "report" | "attachment" | — |
originalNameمطلوب | string | 1–255 chars |
mimeTypeمطلوب | enum: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | "application/pdf" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "text/csv" | — |
sizeBytesمطلوب | integer | 1–20971520 |
مثال
{
"kind": "avatar",
"originalName": "string",
"mimeType": "image/jpeg",
"sizeBytes": 1
}مثال بأمر curl
curl -X POST "https://your-institute.example/api/v1/files/upload-url" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"kind": "avatar",
"originalName": "string",
"mimeType": "image/jpeg",
"sizeBytes": 1
}'الاستجابات
| الاسم | النوع | القيود |
|---|---|---|
storageKeyمطلوب | string | — |
uploadUrlمطلوب | string | — |
expiresAtمطلوب | string (date-time) | — |
{
"storageKey": "string",
"uploadUrl": "string",
"expiresAt": "2026-03-02T09:00:00.000Z"
}تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
GET /api/v1/storage/usage
This institute’s used storage and, when the server can tell, how much room it still allows (the storage meter).
مثال بأمر curl
curl -X GET "https://your-institute.example/api/v1/storage/usage" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"الاستجابات
| الاسم | النوع | القيود |
|---|---|---|
usedBytesمطلوب | integer | 0–9007199254740991 |
limitBytesمطلوب | integer | null | 0–9007199254740991 |
remainingBytesمطلوب | integer | null | 0–9007199254740991 |
serverTotalBytesمطلوب | integer | null | 0–9007199254740991 |
serverAvailableBytesمطلوب | integer | null | 0–9007199254740991 |
reserveBytesمطلوب | integer | null | 0–9007199254740991 |
capEnabledمطلوب | boolean | — |
{
"usedBytes": 0,
"limitBytes": 0,
"remainingBytes": 0,
"serverTotalBytes": 0,
"serverAvailableBytes": 0,
"reserveBytes": 0,
"capEnabled": true
}تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.
تُعيد مغلّف الخطأ المشترك `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. جميع الرموز مذكورة في دليل الاصطلاحات.