قاعدة البيانات
كل مشروع DYPAI يأتي بقاعدة بيانات PostgreSQL خاصة به. Postgres كاملة — ليست نسخة مخفّفة — بالأنواع والقيود و SQL نفسها التي تستخدمها في أي مكان آخر. مخصصة لمشروعك، معزولة عن الجميع.

ثلاث طرق لإدارتها
| اسأل ذكاءك الاصطناعي | "أنشئ جدولاً orders فيه total و date و customer_id." — يعدّل عميل الذكاء الاصطناعي المخطط عبر MCP. الأسرع لمعظم المهام. |
| المحرر البصري | انقر عبر تبويب Database لإنشاء الجداول وتعديل الأعمدة وتصفّح الصفوف. جيد للتعديلات السريعة. |
| محرر SQL | شغّل أي SQL مباشرة. جيد للترحيلات المعقدة أو الاستعلامات التي لا تغطيها الواجهة. |
ستتنقل بينها حسب المهمة. لـ CRUD مباشر، الذكاء الاصطناعي عادة الأسرع. لفحص البيانات، المحرر البصري. لأي شيء يخطئ فيه الذكاء الاصطناعي أو حالة حدّية، SQL.
خلف الكواليس، يقود الذكاء الاصطناعي قاعدة البيانات بأدوات MCP: execute_sql و apply_migration (تغييرات المخطط) و get_app_tables (فحص المخطط) و manage_roles. تضيف حزمة @dypai-ai/mcp المحلية manage_database و bulk_upsert للتحميل الجماعي من نظام ملفاتك.
نموذج الأمان
يُفرض الأمان في DYPAI على مستوى endpoint، وليس على مستوى قاعدة البيانات. لا يوجد أمان على مستوى الصف (RLS).
هذا يعني: تثق قاعدة البيانات بسير العمل الذي يستدعيها. Endpoints هي البوابة. إذا صفّى endpoint حسب ${current_user_id}، تعود صفوف ذلك المستخدم فقط. إذا لم يصفِّ endpoint، يرى المتصل الذي لديه وصول إلى ذلك الـ endpoint كل شيء.
هذا يُبقي الأمور بسيطة — تفكّر في الوصول في مكان واحد (الـ endpoint)، وليس في اثنين (الجدول والـ endpoint). لكنه يعني أن كل endpoint تبنيه مسؤول عن تصفيته الخاصة. المزيد عن هذا في بنّاء API: Endpoints.
لا تعرض جداول خام
لا تبنِ endpoints تعيد جداول كاملة دون تصفية. اجعل الاستعلامات دائماً ضمن نطاق المستخدم الحالي أو السجل المطلوب أو فحص دور صريح.
المخططات التي يمكنك استخدامها
قاعدة بيانات مشروعك فيها بضعة مخططات بقواعد مختلفة:
public— مخططك. قراءة وكتابة كاملتان. هنا تذهب جداولك.system— مصادقة المستخدمين والأدوار وبيانات endpoints الوصفية وذاكرة الوكيل. للقراءة فقط لاستعلاماتك. آمن للانضمام منه (مثلاًLEFT JOIN system.users).storage/auth— بنية داخلية. للقراءة فقط. لا تكتب إليها.
يعرض المحرر البصري public فقط افتراضياً. يسمح محرر SQL بالقراءة من الأخرى.
النسخ الاحتياطية
النسخ الاحتياطية اليومية التلقائية ميزة للخطة المدفوعة — الخطة المجانية ليس فيها نسخ احتياطية تلقائية. على خطة مدفوعة ستجدها تحت Database → Backups، حيث يمكنك تنزيل أي نسخة حديثة. لا يوجد زر "restore" داخل التطبيق: تنزّل نسخة وتعيد استيراد ما تحتاجه. مدة الاحتفاظ نافذة عالمية واحدة (نحو 7 أيام، مضبوطة بالبيئة) — ليست متدرجة حسب الخطة.
انظر النسخ الاحتياطية للتدفق الكامل.
الحدود
| مجاني | مدفوع | |
|---|---|---|
| حجم قاعدة البيانات | 500 MB | حتى 100 GB |
| مهلة الاستعلام | 30s | 30s |
تخزين قاعدة البيانات حد خطة المؤسسة، مشترك عبر كل تطبيق في مساحة عملك، ويُتتبَّع في صفحة الاستخدام للمشروع (Observe → Usage). تجاوزه يحظر الكتابة حتى تُفرغ مساحة أو ترقّي. تُقدَّم الاتصالات من خلفية مجمّعة مشتركة (PgBouncer)، فلا تدير سقف اتصال لكل مشروع مباشرة.