التحديثات
عروض التحديث الواردة من المركز، وطلب تثبيت أحدها.
عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).
العمليات
الحصول على حالة التحديث
GET HEAD /api/v1/system/updates
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد ما يبلّغ عنه محدِّث المضيف: الإصدار المثبّت ومخطط البيانات (schema)، وأحدث إصدار مُكتشَف (latest)، وإعدادات التحديث التلقائي (automatic وhourUTC وpin وchannel وstatistics)، وphase (idle أو checking أو updating أو failed)، وآخر error، وآخر نبضة، وrevision الإعدادات، إضافةً إلى الطلب الذي ما زال ينتظر في صندوق بريد المحدِّث (pending). وتكون snapshot هي null إذا لم يكن هناك محدِّث مضيف متصل. مرّر revision إلى requestSystemUpdate.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
snapshot | object | نعم | يمكن أن يكون null |
snapshot.revision | integer | نعم | 0–2147483646 |
snapshot.currentVersion | string | نعم | يطابق النمط ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.currentSchema | integer | نعم | 0–2147483647 |
snapshot.automatic | boolean | نعم | — |
snapshot.hourUTC | integer | نعم | 0–23 |
snapshot.pin | string | نعم | يطابق النمط ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$; يمكن أن يكون null |
snapshot.heartbeatAt | string (date-time) | نعم | — |
snapshot.checkedAt | string (date-time) | نعم | يمكن أن يكون null |
snapshot.latest | object | نعم | يمكن أن يكون null |
snapshot.latest.version | string | نعم | يطابق النمط ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.latest.schema | integer | نعم | 0–2147483647 |
snapshot.latest.sha256 | string | نعم | SHA-256: 64 رقمًا ست عشريًا بأحرف صغيرة |
snapshot.phase | string | نعم | إحدى القيم: idle, checking, updating, failed |
snapshot.error | string | نعم | إحدى القيم: check_failed, update_failed, conflict, maintenance_required, recovery_required, null; يمكن أن يكون null |
snapshot.lastAttemptDay | string | نعم | يمكن أن يكون null |
snapshot.lastRequestId | string (uuid) | نعم | يمكن أن يكون null |
snapshot.statistics | boolean | لا | — |
snapshot.channel | string | لا | إحدى القيم: stable, beta |
pending | object | نعم | إحدى القيم: null |
pending.id | string (uuid) | نعم | — |
pending.expectedRevision | integer | نعم | 0–2147483646 |
pending.kind | string | نعم | إحدى القيم: check |
pending.version | string | نعم | يطابق النمط ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
pending.sha256 | string | نعم | SHA-256: 64 رقمًا ست عشريًا بأحرف صغيرة |
pending.automatic | boolean | نعم | — |
pending.hourUTC | integer | نعم | 0–23 |
pending.statistics | boolean | لا | — |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/system/updates" \
-H "Authorization: Bearer $ARKVORY_TOKEN"طلب إجراء تحديث
POST /api/v1/system/updates/requests
الوصول: مسؤول · إعادة المحاولة: لا تكرّره إلا مع المراجعة المتوقعة (compare-and-swap)
يسلّم أمرًا واحدًا إلى محدِّث المضيف الذي يؤدي العمل: kind هي check للبحث عن إصدار جديد، أو apply لتثبيت الإصدار المستقر المعطى version مع sha256 الخاص به، أو configure لضبط automatic وhourUTC وstatistics الاختيارية. أرسل UUID جديدًا بوصفه id وexpectedRevision من getSystemUpdates؛ و409 revision_mismatch يعني أن الإعدادات تغيّرت، و503 busy أن هناك طلبًا معلّقًا أو أن المحدِّث يعمل، و503 unavailable أنه لا يوجد محدِّث متصل أو أن آخر نبضة له أقدم من خمس دقائق. والردّ 202 يعني فقط أن الطلب وُضع في الطابور: تابع phase وcurrentVersion وlastRequestId في getSystemUpdates. وتكرار id والمتن نفسيهما آمن.
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
expectedRevision | integer | نعم | 0–2147483646 |
kind | string | نعم | إحدى القيم: check |
version | string | نعم | يطابق النمط ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
sha256 | string | نعم | SHA-256: 64 رقمًا ست عشريًا بأحرف صغيرة |
automatic | boolean | نعم | — |
hourUTC | integer | نعم | 0–23 |
statistics | boolean | لا | — |
الاستجابة 202
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
الاستجابات: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/system/updates/requests" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":"00000000-0000-4000-8000-000000000000","expectedRevision":0,"kind":"check"}'