الكلجديدمُحسّنإصلاح
مُحسّن

تحديث Playground، وخيار Reset، والتمرير عند الطلب

لم يعد تحديث Playground يعرض الحالة الثابتة بشكل خاطف قبل أن تظهر حالتك مجدداً. يمسح زر Reset الجديد (يتطلب تأكيداً) تبويبات request الثلاثة كلها، وملفات cookies، والـ proxies المنقولة دفعة واحدة. يمكن الآن للـ response أيضاً نقل معرف proxy الخاص به أو User-Agent إلى الـ request التالي عندما تطلب ذلك، بدلاً من تطبيقها تلقائياً دون علمك.

جديد

معرفة تكلفة كل request من الرصيد

يحتوي كل API response الآن على header باسم x-foura-credits يوضح تكلفة ذلك الاستدعاء. تفصل واجهة Budget الجديدة في لوحة التحكم استهلاك الرصيد حسب API key و domain و IP العميل مع مخطط زمني، ويعرض Playground نفس التفاصيل على كل response لتتمكن من تقدير حجم العمل قبل التوسع.

جديد

مدونة FourA تتوفر بسبع لغات

تُعرض الآن كل مقالة على المدونة باللغات الإنجليزية، والبلغارية، والألمانية، والبولندية، والفيتنامية، والصينية، والعربية. يتم الحفاظ على كتل الكود، وتنسيق Markdown، والروابط، ويعيد البحث العناوين الموطنة.

مُحسّن

الـ responses تعكس الـ proxy الذي عالجها

يتضمن كل Single response الآن معرّف الـ proxy الذي عالج الـ request، وتفعل الـ Browser responses الشيء نفسه. مفيد للاستدعاءات المتسلسلة التي تحتاج إلى الالتزام بنفس الـ proxy.

جديد

إطلاق اللغة العربية (مع RTL)

يعرض الموقع الرئيسي الآن باللغة العربية مع تنسيق كامل من اليمين إلى اليسار (RTL)، ليرتفع عدد اللغات المدعومة إلى 7. وإذا كانت لغة متصفحك لا تطابق الصفحة التي تصفحتها، فسيظهر شريط ضيق يعرض عليك التبديل إليها.

مُحسّن

أعمدة قابلة للفرز وشريط جانبي قابل للطي

انقر فوق رأس العمود في Dashboard لفرزه. يعمل هذا على Activity و API Keys و sessions، ويحافظ على حالته بعد التحديث التلقائي، ويؤدي Ctrl-click (أو Cmd على Mac) إلى إلغاء الاختيار. ينطوي الشريط الجانبي أيضاً ليتحول إلى شريط أيقونات عندما تريد إعطاء مساحة أكبر للجدول.

جديد

Browser يحل Turnstile التفاعلي بالكامل

المواقع التي تحجب الـ requests خلف أداة تحدٍ تفاعلية (نمط Turnstile المدار هو النمط الشائع) تعود الآن بـ HTML المصيّر عند استدعاء Browser باستخدام unblocker: true. تم التحقق من الطرف إلى الطرف ضد مواقع معروفة بحمايتها كانت تُرجع صفحة التحدي سابقًا.

جديد

الموقع وPlayground بست لغات

اختر لغتك من رمز الكرة الأرضية في header. يتوفر الموقع وPlayground الآن باللغات البلغارية، والصينية، والألمانية، والبولندية، والفيتنامية، والإنجليزية، مع URLs تدعم الإعدادات المحلية يمكنك حفظها كعلامة مرجعية أو مشاركتها.

إصلاح

تقييد الوصول عبر نطاقات مختلفة على الـ API

لقد قمنا بتشديد قيود الوصول عبر نطاقات مختلفة (cross-origin) بحيث لا يمكن لغير foura.ai استدعاء الـ API باستخدام بيانات الاعتماد. كما قمنا بتعزيز فلتر المدخلات على endpoint المقاييس وحذف السر الاحتياطي المخصص للتطوير فقط. ولن تتغير عمليات التكامل الحالية.

إصلاح

قواعد validate المخصصة تُحتسب كنجاح

إذا قمت بتعيين validate.status.accept على request، فإن المحرك يعامل استجابة non-200 المقبولة كنجاح تام. كانت Activity لا تزال تصنف تلك الاستجابات كإخفاقات، مما أدى إلى تشويه إحصاءات الاستخدام الخاصة بك. تتبع النتائج الآن قرار validate الخاص بك، لذا فإن رمز 403 الذي قبلته يظهر كنجاح، وليس App Fail.

مُحسّن

تسميات Activity تطابق Overview

كان Activity يعرض سلاسل النتائج الخام مثل Application_fail بينما كان Overview يستخدم تسميات مبسطة (App Fail) بالألوان المناسبة. يستخدم Activity الآن نفس التسميات والألوان، مما يجعل قراءة كلا العرضين متطابقة.

إصلاح

صفحات غير UTF-8 تُفك ترميزها الآن بشكل سليم

إذا كنت تكشط صفحات باللغة السيريلية، أو الصينية، أو اليابانية، أو غيرها من الصفحات غير المعتمدة على UTF-8 عبر Single، فقد كان الـ body يعود سابقاً على شكل mojibake. كنا نفرض فك ترميز كل response كترميز UTF-8 قبل أن ترى الـ raw bytes. الآن، نقرأ الـ charset من الـ response (من Content-Type، ثم <meta charset>، ثم UTF-8 كخيار احتياطي) ونفك ترميزه بشكل صحيح. شكراً لـ Alexandar Kanchev (Sensika) على الإبلاغ عن هذا.

إصلاح

كشف proxies مزيفة تعكس الـ request الخاص بك

بعض الـ proxies المنتشرة على الإنترنت لا تقوم بتمرير الـ request الخاص بك فعلياً. بل تعكسه على شكل تفريغ خادم بنص صريح وتحاول استخراج ما بداخله. أصبحنا الآن نكشف هذا النمط قبل أن يصل الـ response إلى الكود الخاص بك، لذا فإن Single و Browser و Proxy Finder تعيد جميعاً فشلاً صريحاً (أو تقوم بإعادة المحاولة) بدلاً من هذه البيانات عديمة الفائدة.

جديد

إعادة تشغيل أي صف Activity في Playground

أصبح كل صف Activity يحتوي على payload مخزنة قابلاً للنقر الآن: يعرض مربع الحوار الـ request والـ response بالكامل (بتنسيق pretty-printed، مع أزرار نسخ ورسائل واضحة للـ requests التي واجهت خطأً قبل إنشاء body). انقر على "Open in Playground" لتحميل هذا الـ call بعينه مجدداً في النموذج مع عرض الـ response المؤرشف الخاص به بالفعل، لتتمكن من تعديل الـ parameters وإعادة التشغيل دون الحاجة إلى إعادة بنائه. تبقى الـ payloads المخزنة لمدة 24 ساعة، وتقتصر على آخر 200 لكل key.

مُحسّن

كل استجابة API تحمل request ID

ترد الاستدعاءات الموثقة الآن مع header الـ X-Foura-Request-Id. خزّنه في الـ logs الخاصة بك وسيكون بإمكانك مطابقة أي request بالصف الخاص به في Activity، أو تزويد الدعم به لنتمكن من التحقق مما حدث بالضبط من جانبنا.