ضمانات التوافر
| الخطة | توافر مستهدف | تعويض بالرصيد عند الخرق |
|---|---|---|
| مجانًا | بدون ضمانات | بدون تعويض |
| فردي | 99% | 5% من رسومك الشهرية لكل 0.1% |
| بداية | 99.9% | 10% من رسومك الشهرية لكل 0.1% |
| احترافية | 99.9% | 25% من رسومك الشهرية لكل 0.1% |
| أعمال | 99.95% | 50% من رسومك الشهرية لكل 0.1% |
| مؤسسية | 99.99% + مخصص | حسب العقد، SLA مكتوب |
يُحسب التوافر شهريًا حسب استجابة https://api.astroway.info/v1/health بحالة HTTP 200 خلال 1000 مللي ثانية. لا تُحتسب الأعمال المجدولة (نُعلن عنها قبل 48 ساعة على الأقل عبر صفحة الحالة) في الحساب.
أهداف التأخير
تُقاس على api.astroway.info/v1/* من منطقة واحدة، فقط وقت الحساب الخادمي (بدون حساب العميل أو الشبكة). نُنشر تقريرًا ربع سنويًا كاملًا على صفحة الحالة.
نقاط النهاية القياسية
Chart، planets، synastry، transits، progressions، ACG، geodetic، solar-return وما شابه.
| المعيار | الهدف | الفعلي (عينة داخلية، 2026-05-09) |
|---|---|---|
| p50 | < 100 مللي ثانية | ~80 مللي ثانية |
| p95 | < 500 مللي ثانية | ~280 مللي ثانية |
| p99 | < 1 ثانية | ~640 مللي ثانية |
تنويه: الأرقام الفعلية هي عينة داخلية من مراقبة api-calc، لوحة مراقبة telemetry العامة في خطتنا المستقبلية. لاحظ أن p99 = أعلى القيم المتطرفة، لذا فإن الوقت أعلى بكثير من p50.
نقاط النهاية الثقيلة
تجميعات متعددة الأيام: transit-calendar، forecast-calendar، moon-aspects، aspect-timeline، group-synastry، eclipse-analysis.
| المعيار | الهدف | الفعلي (2026-04-15) |
|---|---|---|
| p95 | < 2 ثانية | 1.9 ثانية (moon-aspects، 30 يومًا) |
| p99 | < 4 ثواني | 1.9 ثانية |
التصحيح (Rectification)
POST /v1/rectification (حتى 120 ثانية) و POST /v1/rectification/trutine (حتى 15 ثانية) بطبيعتها عمليات طويلة ولا تخضع لضمانات SLA الخاصة بالتأخير. تحترم هذه العمليات رأس Request-Timeout حتى 180 ثانية.
حدود التكرار
حد ناعم لكل مفتاح في rateLimitMiddleware، يُرجع HTTP 429 مع رأس Retry-After.
| الخطة | طلبات / دقيقة | ميزانية رصيد شهرية |
|---|---|---|
| مجانًا | 10 | 10 000 |
| فردي | 30 | 50 000 |
| بداية | 120 | 200 000 |
| احترافية | 400 | 800 000 |
| أعمال | 1000 | 3 500 000 |
| مؤسسية | مخصص | غير محدود |
التجربة العامة (POST /v1/public/chart) محدودة حسب IP — 30 طلبًا / ساعة، بدون مفتاح API.
تحديد هوية الطلب
تحتوي كل استجابة على رأس X-Request-Id (UUID). أضف هذا المعرف عند الإبلاغ عن حادث — نحتفظ بسجلات الوصول 30 يومًا ويمكننا إعادة بناء طلبك بالكامل باستخدام معرف الطلب فقط.
في حالة HTTP 5xx، يُكرر نفس المعرف في جسم الاستجابة:
{ "ok": false, "error": { "code": "INTERNAL_ERROR", "message": "Internal server error", "request_id": "c07b5c55-7637-4add-bd2e-7c7c4deb365f" }}الاستجابة للحوادث
| المستوى | التعريف | SLA الاستجابة |
|---|---|---|
| SEV-1 | جميع الطلبات تفشل / عطل إقليمي | تأكيد خلال 15 دقيقة |
| SEV-2 | عطل في نقطة نهاية واحدة أو >5% أخطاء | تأكيد خلال ساعة |
| SEV-3 | تدهور في التأخير (p95 > 2× الهدف) | نفس يوم العمل |
| SEV-4 | مشكلة تجميلية / عميل واحد فقط | اليوم التالي من أيام العمل |
أبلغ عن الحوادث على support@astroway.info مع معرف الطلب. للحالة SEV-1، تحقق أيضًا من صفحة الحالة.
الإصدار والتقاعد (Versioning & Deprecation)
- تقع نقاط النهاية تحت
/v1/وتبقى متوافقة مع الإصدارات السابقة ضمن نفس الإصدار الرئيسي. - التغييرات الكبيرة تصدر تحت
/v2/، ويستمر/v1/في العمل لمدة 12 شهرًا على الأقل. - إضافة الحقول لا تُعتبر تغييرًا كبيرًا؛ يجب على العملاء تجاهل الحقول غير المعروفة.
- يُعلن عن التقاعد في سجل التغييرات ويُرسل إلى مالكي الحسابات عبر البريد الإلكتروني قبل 90 يومًا على الأقل.
قنوات الدعم
| الخطة | القناة | وقت الاستجابة |
|---|---|---|
| مجانًا | قضايا GitHub، منتدى المجتمع | حسب الإمكان |
| بداية | support@astroway.info | ≤ يوم عمل واحد |
| احترافية | البريد الإلكتروني + صف أولوية | ≤ 4 ساعات عمل |
| مؤسسية | Slack مخصص / PagerDuty | حسب العقد |