أوامر التحقق
تتحقق أوامر التحقق من أن مشروعك يتوافق مع اتفاقيات FORGE وعقود API ومتطلبات بنية القوالب. تغطي هذه المجموعة أيضاً إدارة الأسرار وتوليد توثيق API وعمليات ترقية CLI.
التحقق
forge validate:api
التحقق من أن تنفيذ API يُطابق العقد المُحدد. يفحص تعريفات المسارات وتوقيعات المعالجات وبنى DTO وتنسيقات الاستجابة مقابل عقد معمارية المشروع.
forge validate:apiمثال على المخرجات
جاري التحقق من عقد API...
المسارات:
✓ GET /api/v1/contents
✓ POST /api/v1/contents
✓ GET /api/v1/contents/:id
✓ PUT /api/v1/contents/:id
✓ DELETE /api/v1/contents/:id
✗ GET /api/v1/lookups (المعالج مفقود)
DTOs:
✓ CreateContentRequest
✓ UpdateContentRequest
✗ CreateLookupRequest (الملف مفقود)
فشل التحقق: وُجدت مشكلتان.forge validate:pages
التحقق من أن صفحات الواجهة الأمامية تُطابق بنية المسارات المتوقعة واتفاقيات المكونات.
forge validate:pagesمثال على المخرجات
جاري التحقق من الصفحات...
الإدارة:
✓ /dashboard
✓ /contents
✓ /contents/create
✓ /contents/[id]
✓ /contents/[id]/edit
✓ /users
✗ /lookups (الصفحة مفقودة)
الويب:
✓ /
✓ /[slug]
✓ /profile
فشل التحقق: وُجدت مشكلة واحدة.forge validate:template
التحقق من أن بنية قالب المشروع سليمة وجميع الملفات المطلوبة موجودة.
forge validate:templateforge validate:project
تشغيل تحقق شامل للمشروع بأكمله مقابل معايير FORGE. يفحص الإعدادات وإعدادات Docker وملفات البيئة والتحكم بالإصدارات وبنية المشروع في تمريرة واحدة.
forge validate:project [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--path | string | . | مجلد المشروع للتحقق. |
--format | string | text | تنسيق المخرجات: text أو json. |
مثال على المخرجات
جاري التحقق من مشروع FORGE...
✓ الإعدادات — forge.yaml موجود
✓ forge.yaml: project.name — الحقل موجود
✓ forge.yaml: project.backend — الحقل موجود
✓ إعدادات Docker — docker-compose.yaml موجود
✓ البيئة — ملف .env موجود
✓ التحكم بالإصدارات — مستودع Git مُهيأ
✓ Git Ignore — .gitignore موجود
الملخص: 7 نجح، 0 فشل
جميع التحققات نجحت!نصيحة
شغّل جميع أوامر التحقق الأربعة قبل النشر لالتقاط المشاكل الهيكلية مبكراً. هي سريعة وآمنة للتشغيل في أي وقت.
إدارة الأسرار
forge secrets:generate-key
توليد مفتاح سري آمن تشفيرياً لتوقيع JWT أو التشفير أو أسرار التطبيق الأخرى.
forge secrets:generate-key [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--output | string | .env | الملف لكتابة المفتاح المُولّد إليه. |
مثال
forge secrets:generate-key --output=.envتم توليد APP_SECRET_KEY وكتابته إلى .envforge secrets:encrypt
تشفير قيمة نصية باستخدام مفتاح تشفير المشروع (FORGE_ENCRYPTION_KEY من .env).
forge secrets:encrypt <VALUE> [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--env-file | string | .env | مسار ملف .env الذي يحتوي FORGE_ENCRYPTION_KEY. |
مثال
forge secrets:encrypt "my-secret-api-key"جاري تشفير القيمة...
✓ تم تشفير القيمة
القيمة المُشفّرة:
enc:v1:abc123def456...forge secrets:decrypt
فك تشفير قيمة مُشفّرة (مسبوقة بـ enc:v1:) باستخدام مفتاح تشفير المشروع.
forge secrets:decrypt <VALUE> [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--env-file | string | .env | مسار ملف .env الذي يحتوي FORGE_ENCRYPTION_KEY. |
مثال
forge secrets:decrypt "enc:v1:abc123def456..."جاري فك تشفير القيمة...
✓ تم فك تشفير القيمة
القيمة المفكوكة:
my-s****تحذير
القيمة المفكوكة مُقنّعة جزئياً للأمان. استخدم المخرجات المفكوكة برمجياً بدلاً من عرضها في السجلات.
forge secrets:verify
التحقق من وجود جميع الأسرار المطلوبة وإعدادها بشكل صحيح.
forge secrets:verifyمثال على المخرجات
┌──────────────────────┬──────────┬────────────────────────────────┐
│ السر │ الحالة │ المصدر │
├──────────────────────┼──────────┼────────────────────────────────┤
│ APP_SECRET_KEY │ موجود │ .env │
│ DATABASE_URL │ موجود │ .env │
│ REDIS_URL │ موجود │ .env │
│ TWILIO_AUTH_TOKEN │ مفقود │ مطلوب من مزود sms:twilio │
│ S3_SECRET_KEY │ موجود │ .env │
└──────────────────────┴──────────┴────────────────────────────────┘
1 سر مفقود. أضف TWILIO_AUTH_TOKEN إلى .env للحل.أوامر الترقية
تدير أوامر الترقية انتقالات إصدار FORGE CLI والمشروع، مما يضمن بقاء الكود المُولّد متوافقاً مع أحدث إصدار من FORGE.
forge upgrade:apply
ترقية ملفات المشروع الحالي المُولّدة لتُطابق إصدار CLI المُثبّت. يُقارن FORGE تجزئات ملفات المشروع المُولّدة مع أحدث القوالب ويُطبّق التحديثات.
forge upgrade:apply [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--version | string | الأحدث | الإصدار الهدف للترقية إليه. |
--no-backup | flag | false | تخطي إنشاء نسخة احتياطية قبل الترقية. |
--dry-run | flag | false | إظهار ما سيتغير بدون تعديل أي ملفات. |
مثال على المخرجات
جاري ترقية المشروع إلى forge 0.5.2...
الملفات المُعدّلة:
api/src/main.rs تم التحديث
api/src/utils/response.rs تم التحديث
web/next.config.js تم التحديث
الملفات الجديدة:
api/src/middleware/cors.rs تم الإنشاء
3 ملفات مُحدّثة، 1 ملف مُنشأ.
شغّل "forge validate:api" للتحقق من الترقية.تحذير
forge upgrade:apply يُعدّل فقط الملفات المُولّدة أصلاً من FORGE. لن يستبدل الملفات التي عدّلتها يدوياً. إذا كان لملف مُولّد تعديلات محلية، يُنشئ FORGE ملف .forge-merge لتحله يدوياً.
forge upgrade:check
التحقق مما إذا كان المشروع الحالي يحتاج أي ترقيات بدون إجراء تغييرات.
forge upgrade:checkمثال على المخرجات
إصدار المشروع الحالي: 0.5.1
إصدار CLI المُثبّت: 0.5.2
3 ملفات ستُحدّث، 1 ملف سيُنشأ.
شغّل "forge upgrade" لتطبيق التغييرات.forge upgrade:rollback
التراجع عن أحدث ترقية باستعادة الإصدارات السابقة من الملفات المُعدّلة.
forge upgrade:rollbackنصيحة
يُخزّن FORGE نسخة احتياطية من الملفات المُعدّلة قبل كل ترقية. يمكنك التراجع بأمان، لكن فقط أحدث ترقية يمكن عكسها.
forge upgrade:history
عرض تاريخ الترقيات للمشروع الحالي.
forge upgrade:historyمثال على المخرجات
┌────┬─────────┬─────────┬─────────────────────┬───────────────┐
│ # │ من │ إلى │ التاريخ │ الملفات المتغيرة │
├────┼─────────┼─────────┼─────────────────────┼───────────────┤
│ 1 │ 0.4.0 │ 0.4.1 │ 2025-02-15 10:30:00 │ 2 │
│ 2 │ 0.4.1 │ 0.5.0 │ 2025-03-01 14:22:00 │ 12 │
│ 3 │ 0.5.0 │ 0.5.1 │ 2025-03-20 09:15:00 │ 5 │
│ 4 │ 0.5.1 │ 0.5.2 │ 2025-04-12 11:45:00 │ 4 │
└────┴─────────┴─────────┴─────────────────────┴───────────────┘forge upgrade:lock
تهيئة أو إعادة توليد ملف forge.lock الذي يتتبع تجزئات الملفات المُولّدة وتاريخ الترقيات. هذا الملف أساسي لنظام الترقية للكشف عن الملفات المُخصّصة.
forge upgrade:lock [OPTIONS]| الخيار | النوع | الافتراضي | الوصف |
|---|---|---|---|
--force | flag | false | إعادة توليد ملف القفل حتى لو كان موجوداً مسبقاً. |
مثال على المخرجات
جاري توليد forge.lock...
[1/2] فحص ملفات المشروع...
[2/2] كتابة forge.lock...
تم توليد forge.lock مع 47 ملفاً مُتتبّعاً
تفصيل الملفات:
Core: 12
Config: 5
Template: 18
Generated: 8
User: 4نصيحة
دائماً أضف forge.lock للتحكم بالإصدارات. يضمن أن كل عضو في الفريق يعمل بنفس سياق إصدار FORGE، ويمكن تطبيق الترقيات بشكل متسق.
انظر أيضاً
- أوامر المشروع —
forge updateيُحدّث CLI نفسه - أوامر النشر — التحقق قبل النشر
- أوامر المزودين —
secrets:verifyيفحص أسرار المزودين المحددة