/healthzعامفحص حياة الـ Worker. بيرجّع 200 + timestamp لما قاعدة البيانات شغالة.
{ "ok": true, "time": 1716200000000 }نستخدم أدوات اختيارية لفهم أداء الموقع وقياس الحملات. تقدر ترفضها أو تسمح بالتحليلات فقط أو توافق على الكل.تفاصيل الخصوصية
نقاط الاتصال التي تستخدمها إضافة ووردبريس وموقع aetosseo.com للتواصل مع Cloudflare Worker. الإصدار v1 مستقر. آخر تحديث 2026-08-10.
الـ endpoints العامة مصمّمة تتنادى بدون session token. الـ endpoints الإدارية تحت /admin/* بتتطلب bearer token (مش documented public).
ردود license check بتحمل توقيع Ed25519 من السيرفر. الـ plugin بيرفض ردود غير موقّعة. ده البوابة الموثوقة، والفحوصات المحلية defense-in-depth.
الـ versioning في الـ path (/v1/). مش هنكسر contract لـ endpoint v1. شكل جديد يروح لـ /v2/.
200 = نجاح، 400 = فشل validation، 401 = فشل auth (admin)، 404 = resource مش موجود، 429 = rate limited، 500 = خطأ سيرفر. مش بنستخدم 2xx-with-error-in-body.
الـ endpoints العامة بتقبل POST من aetosseo.com + من مواقع plugin مرخّصة. مفيش wildcard origin.
/healthzعامفحص حياة الـ Worker. بيرجّع 200 + timestamp لما قاعدة البيانات شغالة.
{ "ok": true, "time": 1716200000000 }/v1/license/checkعام · الـ plugin بيبعت الـ license key + domainفحص حياة من الـ plugin. بيرجّع response موقّع Ed25519 من السيرفر فيه الـ tier + expiry + nonce. الـ plugin بيتحقق من التوقيع قبل ما يصدّق الرد.
{ "license_key": "AETOS-XXXX-XXXX-XXXX", "domain": "example.com", "plugin_version": "4.0.15" }{ "ok": true, "tier": "pro", "status": "active", "expires_at": 1747756800000, "nonce": "...", "signature": "..." }/v1/dl?license=AETOS-...عام · license key مطلوبتنزيل ZIP الإصدار الحالي. الـ Worker بيلاقي الـ manifest entry لإصدار الـ KV-stored ZIP. لو الـ User-Agent فيه placeholder "{LICENSE_KEY}" حرفي، الـ Worker بيستبدله بالـ key الحقيقي (legacy updater recovery).
ملف ZIP مباشر + هيدر Content-Disposition/v1/newsletter/subscribeعاماشتراك في النشرة الأسبوعية عن السيو وظهور الذكاء الاصطناعي. لو الـ Worker عنده RESEND_API_KEY، الرد بيكون "pending_confirmation" وبيبعت إيميل تأكيد. غير كده (legacy fallback) الرد بيكون "subscribed" فوراً.
{ "email": "you@example.com", "locale": "ar", "source_label": "blog" }{ "ok": true, "status": "pending_confirmation" }/v1/newsletter/confirm?token=...عام · token من إيميل التأكيدبيؤكّد اشتراك pending. بيحوّل لـ /ar/newsletter/confirmed/ عند النجاح. بيرجّع 404 HTML عند token غير صالح.
302 Location: https://aetosseo.com/ar/newsletter/confirmed//v1/orders/createعامبينشئ order pending لـ tier (Pro أو Agency). بيرجّع order ID + رابط تعليمات الدفع. فيه honeypot على السيرفر للـ spam (silent reject لو الـ hidden "website" field مليان).
{ "tier": "pro", "domain": "example.com", "email": "you@example.com", "country": "SA", "method": "bank_sar" }{ "ok": true, "order_id": "AET-...", "amount_cents": 7900, "currency": "USD" }كل رد فيه error بنفس الشكل. error هو كود ثابت تقدر تقراه آلياً (مش نص مترجم). detail قابل للقراءة، ممكن يتشال في production.
{ "ok": false, "error": "validation_failed", "issues": [ ... ] }الـ endpoints العامة مش محتاجة token. License check و plugin ZIP download بيستخدموا الـ license key للتحقق، الـ Worker مش بيقبل license لو فشل round-trip Ed25519 verification أو لو الـ tuple HMAC غير صالح. شوف سياسة الأمان للـ threat model الكامل.
لقيت تضارب؟ كلمنا، بنحدّث الصفحة دي في كل patch.