API بوابة Updates Portal
توفر بوابة Updates Portal واجهة برمجة تطبيقات JSON عامة وصغيرة لتتمكن من استطلاع الحالة، واستيراد إدخالات سجل التغييرات (changelog)، ومتابعة خارطة الطريق، والتحقق من المشكلات المعروفة من أنظمتك الخاصة. لا تتطلب أي مصادقة.
Base URL
https://updates.foura.ai
حالة الخدمة
GET /api/v1/status
ترجع الحالة التشغيلية المباشرة لكل خدمة من خدمات FourA، بالإضافة إلى الحوادث النشطة والأخيرة. يتم تخزين الاستجابة مؤقتًا في جانب الخادم لمدة 15 ثانية، لذا فإن استطلاع الحالة بشكل متكرر أكثر من ذلك سيرجع نفس البيانات.
curl https://updates.foura.ai/api/v1/status
{
"overall": "operational",
"services": [
{
"slug": "api",
"name": "API",
"description": "...",
"status": "operational",
"daily": [
{ "date": "2026-05-19", "status": "operational", "major_outage_minutes": 0, "partial_outage_minutes": 0, "degraded_minutes": 0, "internal_degraded_minutes": 0 }
]
}
],
"active_incidents": [],
"recent_incidents": [
{ "id": "...", "service_slug": "api", "service_name": "API", "impact": "minor", "started_at": "...", "resolved_at": "..." }
]
}
| الحقل ذو المستوى الأعلى | النوع | الوصف |
|---|---|---|
overall |
string | تكون قيمته operational إذا كانت جميع الخدمات سليمة، وإلا فإنه يحتوي على إحدى قيم حالة الخدمة |
services |
array | إدخال واحد لكل خدمة مراقبة يحتوي على slug و name و description و status الحالية، وسجل daily (حتى 90 يومًا) |
active_incidents |
array | الحوادث المفتوحة حاليًا |
recent_incidents |
array | الحوادث التي تم حلها خلال آخر 14 يومًا |
قيم status للخدمة: operational و degraded و partial_outage و major_outage و maintenance.
قيم impact للحادثة: minor (أداء منخفض)، major (انقطاع جزئي)، critical (انقطاع الخدمة).
نمط استطلاع الحالة (Polling)
استخدم هذا الـ endpoint لربط حالة FourA بلوحة التحكم الخاصة بك أو بنظام الاستدعاء.
import requests
def check_foura():
r = requests.get("https://updates.foura.ai/api/v1/status", timeout=5)
r.raise_for_status()
data = r.json()
if data["overall"] != "operational":
# Page on-call, post to Slack, flip a feature flag, etc.
for svc in data["services"]:
if svc["status"] != "operational":
print(f"{svc['name']}: {svc['status']}")
return data
يرجع المسار القديم GET /api/status الرمز 410 Gone ويوجه المتصلين إلى هنا.
سجل التغييرات (Changelog)
GET /api/changelog
يرجع إدخالات سجل التغييرات المنشورة بترتيب زمني عكسي.
curl "https://updates.foura.ai/api/changelog?limit=20"
معلمات الاستعلام (Query parameters):
| المعلمة | النوع | الافتراضي | الوصف |
|---|---|---|---|
page |
integer | 1 | رقم الصفحة (يبدأ من 1) |
limit |
integer | 20 | عدد الإدخالات لكل صفحة (الحد الأقصى 50) |
category |
string | - | التصفية حسب new أو improved أو fixed |
{
"entries": [
{
"id": 42,
"title": "...",
"body": "Markdown body",
"category": "new",
"published_at": "2026-05-19T12:00:00Z",
"tags": "[\"api\", \"dashboard\"]"
}
],
"total": 137,
"page": 1,
"limit": 20
}
RSS
يتم أيضًا نشر سجل التغييرات الكامل (آخر 30 إدخالاً) كخلاصة RSS على:
https://updates.foura.ai/rss
اشترك باستخدام Feedly أو Miniflux أو Thunderbird أو أي قارئ آخر. يتطابق محتوى الخلاصة مع محتوى سجل التغييرات، بما في ذلك تنسيق markdown الذي يتم تحويله إلى HTML.
خارطة الطريق (Roadmap)
GET /api/roadmap
يرجع جميع عناصر خارطة الطريق، مرتبة حسب عدد الأصوات ثم وقت الإنشاء.
curl https://updates.foura.ai/api/roadmap
{
"items": [
{
"id": 12,
"title": "...",
"description": "...",
"category": "API",
"status": "planned",
"votes": 23,
"target_date": "Q3 2026"
}
]
}
قيم status للعنصر: planned و in_progress و done و cancelled.
التصويت
POST /api/roadmap/:id/vote
يبدل حالة التصويت على عنصر واحد في خارطة الطريق. الأصوات مجهولة الهوية ومرتبطة بـ IP الخاص بالمتصل و User-Agent. يؤدي الاستدعاء مرة أخرى إلى إزالة التصويت.
curl -X POST https://updates.foura.ai/api/roadmap/12/vote
{ "votes": 24, "voted": true }
يوضح الحقل voted الحالة بعد الاستدعاء: true إذا تمت إضافة تصويتك، و false إذا تمت إزالته.
المشكلات المعروفة (Known Issues)
GET /api/issues
يرجع المشكلات التي يتتبعها دعم FourA.
curl "https://updates.foura.ai/api/issues?tab=open"
معلمات الاستعلام (Query parameters):
| المعلمة | النوع | الافتراضي | الوصف |
|---|---|---|---|
tab |
string | open |
القيمة open للمشكلات النشطة، و resolved للمشكلات التي تم حلها/إغلاقها |
{
"issues": [
{
"id": 5,
"title": "...",
"body": "Markdown description",
"severity": "medium",
"status": "investigating",
"service_id": "api",
"opened_at": "2026-05-18T09:00:00Z",
"resolved_at": null,
"resolution": null
}
]
}
قيم severity: low و medium و high و critical.
قيم status: open و investigating و resolved و closed.
ملاحظات
- جميع الـ endpoints عامة. لا يلزم وجود مفتاح API، ولكن توقع تطبيق rate limiting سخي لكل عنوان IP مصدر.
- الاستجابات تكون بتنسيق JSON عبر HTTPS. لا يوجد تقسيم صفحات (pagination) لخارطة الطريق أو المشكلات، فالقوائم صغيرة.
- للحصول على نسخ نصية مجردة أو بتنسيق HTML خام من سجل التغييرات، استخدم خلاصة
/rssبدلاً من/api/changelog.
مواضيع ذات صلة
- حالة الخدمة: قراءة البيانات نفسها في المتصفح
- سجل التغييرات: تصفح الإدخالات مع عوامل التصفية وتقسيم الصفحات
- خارطة الطريق: التصويت على العناصر في واجهة المستخدم
- المشكلات المعروفة: قراءة المشكلات المفتوحة والتي تم حلها
- بوابة Updates Portal: نظرة عامة على القسم