ما هو FivePanel؟

أداة ذاتية الخدمة لبناء لوحات إدارة ويب ولوحات لاعبين لسيرفرات الألعاب، تتصل عبر وكيل للقراءة فقط بدلًا من قاعدة بيانات مكشوفة.

لماذا لا أداة عامة أو لوحة Lua مخصصة؟

يجد معظم أصحاب السيرفرات الراغبين في لوحة ويب أنفسهم مضطرين للاختيار بين ثلاثة خيارات غير مثالية. الأول هو توجيه واجهة مباشرة لقاعدة البيانات مثل phpMyAdmin أو MongoDB Compass نحو قاعدة بيانات الإنتاج: هذا يُظهر البيانات على الشاشة بسرعة، لكنه يمنح أي شخص يملك بيانات الاعتماد وصولًا غير مقيّد بالقراءة والكتابة لكل الجداول، دون أي سجل تدقيق لما تمت مشاهدته أو تعديله أو حذفه، وعادةً ما يتطلب كشف منفذ قاعدة البيانات على الإنترنت أو استخدام نفق (tunnel) للالتفاف حول المشكلة. الخيار الثاني هو لوحة مبنية يدويًا، غالبًا مجموعة من exports بلغة Lua مقترنة بخلفية صغيرة بلغة PHP أو Node: يمكن تفصيلها بدقة حسب احتياجات سيرفر واحد، لكنها هشّة أيضًا — أي تحديث للـ framework، أو إعادة تسمية عمود، أو تغيير في توقيع export يمكن أن يعطّلها بصمت، ويقع عبء الصيانة بأكمله على عاتق من كتبها.

الخيار الثالث هو أداة بناء منخفضة الكود عامة مثل Retool أو Appsmith متصلة مباشرة بقاعدة البيانات. هذه الأدوات أكثر قدرة من سكربت مرتجل، لكنها تفترض أن المشغّل يعرف المخطط مسبقًا ومرتاح لكتابة SQL، وليس لديها أي مفهوم عن اصطلاحات FiveM أو RedM الخاصة، مثل أعمدة البيانات الوصفية المُسلسلة بصيغة JSON أو مصفوفات المعرّفات، و — كالخيار الأول — لا تزال تتطلب أن تكون قاعدة البيانات قابلة للوصول من أي مكان تعمل فيه أداة البناء.

بُني FivePanel حول مجموعة مختلفة من القيود. فبدلًا من كشف قاعدة البيانات، يعمل وكيل صغير على نفس الجهاز (أو الشبكة) التي توجد فيها قاعدة البيانات ويفتح اتصالًا واحدًا صادرًا ومشفّرًا نحو بوابة FivePanel؛ لا يُفتح أبدًا أي منفذ وارد على قاعدة البيانات. يُبلّغ الوكيل عن صورة مُعايَنة من المخطط، يستخدمها FivePanel لاستنتاج الجداول والحقول والأنواع المحتملة للبيانات — بما في ذلك فك تغليف أعمدة JSON التي تستخدمها الـ frameworks عادةً للبيانات الوصفية للشخصيات — دون أن يحتاج أحد لكتابة سطر SQL واحد. من هناك، تُجمَّع اللوحات بسحب وإفلات أدوات جاهزة على شبكة (grid) وربطها بالحقول المُستنتجة، بدلًا من كتابة استعلامات أو كود واجهة أمامية.

أمان·لا كشف لقاعدة البيانات إطلاقًا

يعمل وكيل FivePanel على الـ VPS الخاص بك ويتصل خارجًا ببوابة FivePanel عبر TLS. قاعدة بياناتك لا تستمع أبدًا على منفذ عام.

قواعد البيانات المدعومة

يدعم FivePanel بشكل أصلي كلًا من MySQL/MariaDB وMongoDB كوجهات اتصال للوكيل. في كلتا الحالتين، يُهيَّأ الاتصال مرة واحدة، كسلسلة اتصال واحدة تُعطى للوكيل (DSN لـ MySQL أو URI لـ MongoDB)، ويتولى الوكيل بقية التواصل مع بوابة FivePanel.

الأهم أن الوكيل ليس فيه أي مسار كود خاص بـ framework بعينه. فهو لا يُثبّت أسماء جداول أو أعمدة أو أشكال مجموعات (collections) لأي framework معيّن من FiveM أو RedM. بدلًا من ذلك، يأخذ عيّنة من البيانات الحيّة في أي قاعدة بيانات يُوجَّه إليها ويستنتج البنية — الجداول والحقول والأنواع المحتملة وأشكال JSON المتداخلة — مباشرة من تلك البيانات. عمليًا، هذا يعني أن الوكيل يعمل بنفس الكفاءة مع QBCore وESX وvRP وOxCore أو مخطط مخصص بالكامل، لأنها من منظور الوكيل مجرد بيانات لا أكثر. الأمثلة في الجدول أدناه هي إعدادات واقعية شائعة سترى توثيقها في هذه الوثائق، وليست قائمة ثابتة بـ"أطر العمل المدعومة" — إذا لم يتطابق مخططك مع أي منها، فإن نفس عملية الاستنتاج ما زالت تنطبق.

محرك قاعدة البياناتحقل الاتصالالاستخدام النموذجي في FiveM
MySQL / MariaDBdatabase.url (DSN)QBCore, ESX, vRP, OxCore، مخططات مخصصة
MongoDBdatabase.url (URI)أطر عمل مخصصة أو مبنية على Mongo