مرجع حقل التكوين
مرجع كامل لكل مجال في config.json. يتحكم هذا الملف في سلوك المنتج في وقت التشغيل - حدود الخطة، والفوترة، وخطافات الويب، وعلامات الميزات. إنه منفصل عن .envالذي يحمل الأسرار وأسلاك البنية التحتية.
مثال المبتدئين
هذه هي نقطة البداية الموصى بها للنشر المستضاف ذاتيًا دون تكوين الفوترة. تم ضبط كافة الحدود على null (غير محدود)، وتم تعطيل ميزات الفوترة. يستبدل [email protected] مع عنوانك الخاص.
مدراء#
مجموعة من عناوين البريد الإلكتروني التي تم منحها حق وصول مسؤول الموقع. يمكن للمسؤولين الوصول إلى الصفحات المميزة مثل جدولة العمليات المجمعة ولوحات معلومات الاستخدام على مستوى النظام.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| admins | string[] | مطلوب | قائمة عناوين البريد الإلكتروني التي تتمتع بحق الوصول الإداري. يجب أن يتطابق مع البريد الإلكتروني المرتبط بحساب الكاتب الخاص بالمستخدم. |
سمات#
علامات الميزة التي تتحكم في أجزاء واجهة مستخدم المنتج النشطة. بالنسبة لعمليات النشر البسيطة ذاتية الاستضافة، يمكنك تعطيل جميع ميزات الفوترة وترك علامة المجدول فقط إذا لزم الأمر.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| subscriptionEnforcementEnabled | boolean | مطلوب | عندما يكون هذا صحيحًا، يمكن للمستخدمين عرض الخطط المدفوعة وترقيتها. عندما تكون القيمة "خطأ"، تعرض واجهة مستخدم الترقية عنصرًا نائبًا للفوترة قريبًا بدلاً من ذلك. |
| workspaceBillingEnabled | boolean | مطلوب | عندما يكون هذا صحيحًا، تظهر مستويات الفوترة ومعلومات الخطة في الشريط الجانبي وإعدادات مساحة العمل. اضبط على "خطأ" لإخفاء واجهة مستخدم الفوترة بالكامل. |
| batchSchedulerEnabled | boolean | مطلوب | عندما يكون هذا صحيحًا، يكون برنامج جدولة العمليات المجمعة نشطًا ويمكن الوصول إليه من قبل المسؤول. يتطلب تشغيل Redis وBullMQ. |
| customMCPServerTokens | boolean | مطلوب | عندما يكون خطأ، يقوم خادم MCP بالمصادقة باستخدام رمز OAuth/Clerk القياسي. عندما يكون هذا صحيحًا، يتم استخدام الرموز المميزة لواجهة برمجة التطبيقات (API) المُدارة ذاتيًا بدلاً من ذلك - وهي مفيدة للبيئات التي لا تدعم Clerk MCP. |
حدود#
مجموعة من مجموعات الحدود التي تتحكم في استخدام الموارد. يمكن ربط كل إدخال بطبقة الفوترة عبر billingTier، أو اضبط على null ليتم تطبيقها على جميع المستخدمين بغض النظر عن الخطة. بالنسبة لعمليات النشر البسيطة دون الحاجة إلى فواتير، يمكن إدخال واحد باستخدام "billingTier": null يكفي. null قيم الحدود الرقمية تعني غير محدود.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| id | string | مطلوب | المعرف الفريد لمجموعة الحدود هذه (على سبيل المثال، مجاني، محترف، افتراضي). |
| maxTrackableItems | number | مطلوب | الحد الأقصى لعدد العناصر القابلة للتتبع (النماذج + نقاط نهاية واجهة برمجة التطبيقات) التي يمكن للمستخدم إنشاؤها لكل مساحة عمل. |
| maxResponsesPerSurvey | number | null | مطلوب | الحد الأقصى لعدد الردود المسموح بها لكل استبيان/نموذج. null تعني غير محدود. |
| maxWorkspaceMembers | number | null | مطلوب | الحد الأقصى لعدد الأعضاء في مساحة العمل. null تعني غير محدود. |
| maxApiLogsPerMinute | number | مطلوب | الحد الأقصى لعدد أحداث السجل التي يمكن استيعابها في الدقيقة لكل عنصر يمكن تتبعه. الطلبات الزائدة محدودة السعر. |
| maxApiPayloadBytes | number | مطلوب | الحد الأقصى للحجم بالبايت لحمولة السجل الواحد. يتم رفض الطلبات الأكبر من هذا. |
| logRetentionDays | number | مطلوب | عدد الأيام التي يتم فيها الاحتفاظ بإدخالات السجل قبل إزالتها. ينطبق على كافة السجلات ضمن هذه الطبقة. |
| maxCreatedWorkspaces | number | null | مطلوب | الحد الأقصى لعدد مساحات العمل التي يمكن لمستخدم واحد إنشاؤها. null تعني غير محدود. |
| billingTier | string | null | مطلوب | معرف طبقة الفوترة الذي ينطبق عليه هذا الحد. يجب أن يتطابق مع معرّف في مصفوفة billing.tiers. اضبط على قيمة خالية لتطبيق هذا الحد على جميع المستخدمين بغض النظر عن الخطة. |
الفواتير#
تكوين الفوترة الاختياري لتكامل Lemon Squeezy. إذا كنت لا تستخدم الخطط المدفوعة، قم بتعيين lemonSqueezyStoreId و manageUrl ل null واترك tiers كمصفوفة فارغة. تتم الإشارة إلى قيم معرف الطبقة بواسطة Limits[].billingTier — يجب أن تتطابق تمامًا.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| lemonSqueezyStoreId | string | null | خياري | معرف متجر Lemon Squeezy الخاص بك. مطلوب إذا كنت تقوم بمعالجة المدفوعات من خلال Lemon Squeezy. |
| manageUrl | string | null | خياري | عنوان URL لصفحة إدارة الفوترة المعروضة للمستخدمين. عادةً ما يكون عنوان URL لبوابة عميل Lemon Squeezy الخاص بك. |
billing.tiers[]
مجموعة من طبقات الفوترة المعروضة في واجهة مستخدم الترقية. يجب أن يكون لكل طبقة معرف فريد يطابق الإدخال المقابل في Limits[].billingTier.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| id | string | مطلوب | معرف الطبقة الفريد. تمت الإشارة إليه بواسطة Limits[].billingTier. |
| name | string | مطلوب | الاسم المعروض للمستخدمين (مثل Pro، Team). |
| priceLabel | string | مطلوب | سلسلة السعر المعروضة في واجهة المستخدم (على سبيل المثال، 25 دولارًا). |
| priceInterval | string | مطلوب | الفاصل الزمني للفوترة الموضح أسفل السعر (على سبيل المثال شهريًا). |
| description | string | مطلوب | وصف موجز لما تتضمنه هذه الطبقة. |
| tone | "neutral" | "accent" | "strong" | مطلوب | الموضوع المرئي لبطاقة المستوى. اللكنة والقوية هي الأنماط المميزة؛ الحياد هو الافتراضي. |
| mostPopular | boolean | مطلوب | عندما يكون صحيحًا، يتم عرض شارة "الأكثر شهرة" على بطاقة المستوى هذه. |
| lemonSqueezyVariantId | string | null | خياري | معرف متغير منتج Lemon Squeezy لهذه الطبقة. مطلوب للخروج للعمل. |
| enabled | boolean | مطلوب | عندما تكون القيمة "خطأ"، يتم إخفاء هذا المستوى من واجهة مستخدم الترقية حتى إذا تم تمكين الفوترة. |
الاستخدام#
ضوابط استخدام واجهة برمجة التطبيقات العالمية التي تنطبق على جميع مساحات العمل والمستخدمين.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| invalidApiKeyRateLimitPerMinute | number | مطلوب | الحد الأقصى لعدد الطلبات التي تحتوي على مفتاح API غير صالح مسموح به في الدقيقة لكل عنوان IP قبل أن يكون المصدر محدودًا بالمعدل. يساعد على منع حشو أوراق الاعتماد. |
| maxBodyBytes | number | مطلوب | الحد الأقصى للحجم بالبايت لنص طلب السجل على مستوى بوابة API. يتم رفض الطلبات التي تتجاوز ذلك قبل الوصول إلى طبقة الخدمة. |
| pageSize | number | مطلوب | عدد إدخالات السجل التي تم جلبها لكل صفحة عند تحميل عارض السجل. |
خطافات الويب#
يتحكم في قائمة انتظار تسليم خطاف الويب الصادر المدعوم من Redis وBullMQ. ينطبق تحديد المعدل هنا على مستهلك قائمة الانتظار، وليس على استيعاب السجل الوارد.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| queue.enabled | boolean | مطلوب | عندما يكون هذا صحيحًا، يتم وضع خطافات الويب الصادرة في قائمة الانتظار في Redis ويتم تسليمها بشكل غير متزامن. يتطلب تشغيل Redis. |
| queue.rateLimitMs | number | مطلوب | الحد الأدنى من المللي ثانية للانتظار بين عمليات تسليم خطاف الويب المتتالية من قائمة الانتظار. |
| queue.rateLimitMax | number | مطلوب | الحد الأقصى لعدد أحداث webhook التي يمكن إرسالها داخل نافذة RateLimitMs. |
حزمة#
تكوين جدولة دفعة الخلفية. يجب أيضًا تمكين المجدول عبر features.batchSchedulerEnabled.
| مجال | يكتب | مطلوب | وصف |
|---|---|---|---|
| schedulerTimeZone | string | مطلوب | سلسلة المنطقة الزمنية لـ IANA المستخدمة لجدولة المهام المجمعة (على سبيل المثال UTC، America/New_York). يؤثر عند تشغيل المهام المستندة إلى cron. |