انتقل إلى المحتوى

النظام والسلامة ​

التحقق من العمل والجاهزية، والمقاييس، ومستند OpenAPI، وإمكانات الخادم.

عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).

العمليات ​

فحص الجاهزية التفصيلي ​

GET HEAD /health/ready

الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)

يردّ بالقيمة ready عندما تستجيب قاعدة البيانات والتخزين، ومعها role لهذه العقدة (api أو reader)، وما إذا كانت تقبل الكتابة الآن (تكون قيمة writable هي false على بوابة القراءة وما دام القرص يحتفظ باحتياطي المساحة الحرة)، وخانة التنزيل المشتركة لبوابة القراءة، وعدّادات إجمالية لقبول الرفع والتنزيل وعرض النطاق الترددي. وأثناء إفراغ الخادم لطلباته الجارية (draining) أو عند عدم توفّر إحدى التبعيات يردّ بالرمز 503 مع Retry-After. ولا يُحتسب هذا الطلب ضمن ميزانية الطلبات؛ ولموازن الأحمال الذي لا يملك مفتاحًا استخدم getReadinessStatus.

الاستجابة 200

الحقلالنوعمطلوبالقواعد
rolestringنعمإحدى القيم: api, reader
sharedDownloadsobjectنعميمكن أن يكون null
sharedDownloads.slotintegerنعم0 على الأقل
sharedDownloads.slotsintegerنعم0 على الأقل
sharedDownloads.activebooleanنعم—
sharedDownloads.leaseSecondsintegerنعم0 على الأقل
statusstringنعمإحدى القيم: ready
writablebooleanنعم—
replicationobjectلايمكن أن يكون null
replication.copiesintegerنعم0–16
replication.requiredintegerنعم1–16
replication.singleCopyUntilstring (date-time)نعميمكن أن يكون null
replication.nodestringلاعدد الأحرف: 63 كحد أقصى
replication.profilestringلاإحدى القيم: ha-2, ha-3
replication.peersمصفوفة من objectلاعدد العناصر: 16 كحد أقصى
replication.peers[].namestringنعمعدد الأحرف: 63 كحد أقصى
replication.peers[].connectedbooleanنعم—
replication.peers[].diskstringنعمعدد الأحرف: 24 كحد أقصى
replication.peers[].completebooleanنعم—
replication.peers[].witnessbooleanنعم—
transfersobjectنعم—
transfers.uploadsobjectنعم—
transfers.uploads.admissionobjectنعم—
transfers.uploads.bandwidthobjectنعم—
transfers.uploads.sessionsobjectلا—
transfers.downloadsobjectنعم—
transfers.downloads.admissionobjectنعم—
transfers.downloads.bandwidthobjectنعم—
transfers.downloads.sessionsobjectلا—

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
curl -X GET "$ARKVORY_URL/health/ready" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

الحصول على إمكانات الخادم وحدوده ​

GET HEAD /api/v1/capabilities

الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)

يعيد إصدارات واجهة API، ودور البوابة، وأعلام الميزات (مثل selfRegistration أو mirrorFeed)، والحدود التي يتكيّف معها العميل: أكبر كائن (maxObjectBytes، سلسلة نصية عشرية)، وأصغر جزء وأكبر جزء في الرفع متعدد الأجزاء، وأكبر عدد من الأجزاء، وأكبر حجم للصفحة. اقرأه مرة واحدة عند بدء تشغيل العميل؛ فهو لا يسرد أي موارد.

الاستجابة 200

الحقلالنوعمطلوبالقواعد
apiVersionsمصفوفة من stringنعم—
gatewayRolestringنعمإحدى القيم: api, reader
featuresقاموس من booleanنعم—
limitsobjectنعم—
limits.maxObjectBytesstringلاعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
limits.partBytesintegerلاأصغر جزء في الرفع متعدد الأجزاء.
limits.maxPartBytesintegerلا—
limits.maxPartsintegerلا—
limits.maxPageSizeintegerلا—

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
curl -X GET "$ARKVORY_URL/api/v1/capabilities" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

فحص الجاهزية لموازن الأحمال ​

GET HEAD /health/status

الوصول: أي شخص، دون مفتاح · إعادة المحاولة: آمن للتكرار (قراءة)

لا يحتاج إلى مفتاح ولا يعيد أي تفاصيل: إما 200 مع {"status":"ready"}، وإما 503 مع القيمة unavailable أو draining ومع Retry-After. يُشارَك فحص التبعيات ويُخزَّن مؤقتًا لمدة ثانية واحدة، لذا لا تُثقِل الفحوص المتكررة قاعدة البيانات، ولا يُحتسب الفحص ضمن ميزانية الطلبات.

الاستجابة 200

الحقلالنوعمطلوبالقواعد
statusstringنعمإحدى القيم: ready, unavailable, draining

الاستجابات: 200, 400, 403, 503

مثال

bash
curl -X GET "$ARKVORY_URL/health/status"

التحقق من أن العملية حيّة ​

GET HEAD /health/live

الوصول: أي شخص، دون مفتاح · إعادة المحاولة: آمن للتكرار (قراءة)

يعيد 200 مع {"status":"ok"} ما دامت العملية تردّ على HTTP. ولا يفحص أي تبعية، لذا استخدمه لاتخاذ قرار إعادة التشغيل، واستخدم getReadinessStatus لاتخاذ قرار توجيه الحركة.

الاستجابة 200

الحقلالنوعمطلوبالقواعد
statusstringنعمإحدى القيم: ok

الاستجابات: 200, 400, 403, 503

مثال

bash
curl -X GET "$ARKVORY_URL/health/live"

الحصول على وثيقة OpenAPI ​

GET HEAD /api/v1/openapi.json

الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)

يعيد وثيقة OpenAPI 3.0 الخاصة بهذا النشر، مع امتدادات x-arkvory-* التي تصف قواعد الوصول وإعادة المحاولة والبوابة لكل عملية. تعيد القيمة surface (discovery أو identity أو catalog أو transfers أو administration أو operations) ذلك المجال وحده؛ أما معامل استعلام غير معروف أو مكرر فينتج عنه الخطأ 400. الوثيقة واحدة لكل المستدعين ولا تمنح أي صلاحية: لمعرفة ما يجوز لبيانات الاعتماد هذه استدعاؤه استخدم listVisibleOperations.

المعلمات

الاسمالموضعالنوعمطلوبالقواعد
surfaceالاستعلامstringلاإحدى القيم: discovery, identity, catalog, transfers, administration, operations; Documentation view only; not filtered by caller permissions.

الاستجابة 200

الحقلالنوعمطلوبالقواعد
openapistringنعمإحدى القيم: 3.0.3
infoobjectنعم—
pathsobjectنعم—

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
curl -X GET "$ARKVORY_URL/api/v1/openapi.json" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

الحصول على مقاييس Prometheus ​

GET HEAD /health/metrics

الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)

يعيد مقاييس العملية بتنسيق Prometheus النصي (text/plain; version=0.0.4) لأداة الجمع (scraper). تخص العدّادات والمدرّجات التكرارية (histograms) هذه العملية وتبدأ من الصفر بعد إعادة التشغيل (انظر arkvory_process_start_time_seconds)؛ وتقتصر التسميات على قالب المسار والطريقة وفئة الحالة واتجاه النقل، ولا تذكر أبدًا اسم مُخرَج أو مفتاح أو حساب. ولا يُحتسب الجمع ضمن ميزانية الطلبات.

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
curl -X GET "$ARKVORY_URL/health/metrics" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

عرض قائمة العمليات التي يجوز لبيانات الاعتماد استدعاؤها ​

GET HEAD /api/v1/operations

الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)

يسرد عمليات هذه البوابة التي يجوز لبيانات الاعتماد استدعاؤها، مرتبةً حسب operationId، مع مجال كل عملية (surface) وقاعدة إعادة المحاولة والإجراءات المطلوبة وconditions التي لا تُفحص إلا وقت الاستدعاء (مثل resource-state أو upload-owner). تضيف repository عمليات ذلك المستودع (مستودع غير معروف أو غير متاح للمستدعي يعني 404)، وتحصر surface القائمة في مجال واحد؛ وتحتوي الصفحة على limit عنصرًا (من 1 إلى 100، والافتراضي 50)، وللمتابعة اضبط after على قيمة next. الإجابة استشارية: ابنِ منها القوائم، لكن كل طلب فعلي يُفوَّض من جديد، ولا تسرد بوابة القراءة أي طرق تغيّر الحالة.

المعلمات

الاسمالموضعالنوعمطلوبالقواعد
repositoryالاستعلامstringلايطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$
surfaceالاستعلامstringلاإحدى القيم: discovery, identity, catalog, transfers, administration, operations
afterالاستعلامstringلايطابق النمط ^[A-Za-z][A-Za-z0-9]{0,95}$
limitالاستعلامintegerلا1–100; القيمة الافتراضية 50

الاستجابة 200

الحقلالنوعمطلوبالقواعد
apiVersionstringنعمإحدى القيم: v1
documentVersionstringنعميطابق النمط ^\d+\.\d+\.\d+$
gatewayRolestringنعمإحدى القيم: api, reader
repositorystringنعميطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$; يمكن أن يكون null
advisorybooleanنعمإحدى القيم: true
itemsمصفوفة من objectنعمعدد العناصر: 100 كحد أقصى
items[].operationIdstringنعميطابق النمط ^[A-Za-z][A-Za-z0-9]{0,95}$
items[].methodstringنعمإحدى القيم: get, head, post, put, patch, delete
items[].pathstringنعميطابق النمط ^/; عدد الأحرف: 512 كحد أقصى
items[].summarystringنعمعدد الأحرف: 1024 كحد أقصى
items[].surfacestringنعمإحدى القيم: discovery, identity, catalog, transfers, administration, operations
items[].visibilitystringنعمإحدى القيم: public, authenticated, self, repository, owned-resource, delegated, bootstrap, administrator
items[].retrystringنعمإحدى القيم: read, never-automatic, idempotent, idempotency-key, compare-and-swap, reconcile-upload, reconcile-job
items[].requiredActionsمصفوفة من stringنعمعدد العناصر: 33 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: إحدى القيم: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read, service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read, backup.read, backup.manage
items[].conditionsمصفوفة من stringنعمعدد العناصر: 6 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: إحدى القيم: resource-state, upload-owner, job-owner, reference-owner, delegation-target-and-ceiling, own-key
nextstringنعميطابق النمط ^[A-Za-z][A-Za-z0-9]{0,95}$; يمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
curl -X GET "$ARKVORY_URL/api/v1/operations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Arkvory · ProAnimaStudio