مرجع digna CLI 2026.06¶
2026-09-05
توثّق هذه الصفحة المجموعة الكاملة من الأوامر المتاحة في إصدار digna CLI 2026.06، بما في ذلك أمثلة الاستخدام والخيارات.
الملف التنفيذي يُسمّى digna.
أساسيات CLI¶
نظرة عامة وبناء الجملة¶
يستخدم CLI في الإصدار 2026.06 تسلسلاً هرمياً منظّماً للأوامر قائماً على الفئات:
الأمران version وserve هما أمران مفردان بلا أمر فرعي:
الخيارات العامة¶
تنطبق الخيارات العامة التالية على جميع الأوامر:
--help،-h: يعرض معلومات المساعدة لواجهة CLI أو لفئة أوامر أو أمر فرعي محدّد.--stacktrace: يعرض سلسلة الأخطاء الكاملة عند الإخفاق بدلاً من الرسالة العليا فقط.
الخيار --stacktrace هو خيار عام بالمعنى الدقيق: يجب تمريره قبل فئة الأمر، لا بعدها.
لا يوجد خيار --version. استخدم الأمر version بدلاً منه.
المتطلبات المسبقة¶
تحتاج معظم الأوامر إلى ملف config.toml صالح وقابل للقراءة؛ ويتطلب بعضها إضافةً إلى ذلك ترخيصاً صالحاً. يوضّح الجدول التالي ما تحمّله كل فئة من فئات الأوامر قبل أن تقوم بأي عمل:
| فئة الأمر | يحتاج إلى config.toml | يحتاج إلى ترخيص صالح |
|---|---|---|
version | لا | لا |
config check | لا (فهو موضوع تقرير الأمر نفسه) | لا |
license check | لا | هو ذاته عملية الفحص |
crypt | نعم | لا |
serve | نعم | لا |
windows | لا (تقرؤه الخدمة عند بدء تشغيلها) | لا |
project | نعم | لا |
user | نعم | نعم |
inspection | نعم | نعم |
repo | نعم | نعم |
حيثما يكون الترخيص مطلوباً، يُتحقَّق من توقيعه ومن تاريخ انتهائه معاً، ويتوقف الأمر قبل المساس بالمستودع إذا أخفق أي منهما.
رموز الخروج¶
0: نجح الأمر.1: أخفق الأمر. تُكتب رسالة الخطأ إلى stderr مسبوقة بالبادئةError:.
help¶
يوفّر الخيار --help معلومات عن فئات الأوامر والأوامر الفرعية والخيارات المتاحة:
-
عرض المساعدة العامة:
-
الحصول على المساعدة لفئات وأوامر محدّدة:
تشمل المخرجات: - وصف الأمر: ملخّص للغرض من الأمر. - بناء الجملة: الوسائط المطلوبة والاختيارية. - الخيارات: الرايات والمعاملات الخاصة بالأمر.
version¶
يطبع الأمر version إصدار digna المثبَّت. وهو لا يقرأ أي تهيئة ولا يتحقق من أي ترخيص، لذا يعمل أيضاً على تثبيت يكون فيه config.toml أو الترخيص مفقوداً أو غير صالح.
إصدار الإصدارة مستقل عن إصدار مخطّط المستودع الذي يبلّغ عنه repo check.
استخدام الأمر¶
مثال على المخرجات¶
إدارة التهيئة¶
config check¶
يتحقق الأمر config check من صحة ملف التهيئة (config.toml)، مؤكّداً أن جميع الأقسام والإعدادات الإلزامية موجودة ومنسّقة تنسيقاً سليماً. ويُتحقَّق من كل قسم على حدة، فلا يحجب قسم [app] معطوب حالةَ القسم [repo].
الأقسام التي يشملها التقرير هي:
App config([app])Repository config([repo])Base config([base])Logging config([logging])Encryption config([encryption])OIDC config(s)(oidc_clients) — اختياري؛ غياب المفتاح يجتاز الفحص، أما وجود قائمة مشوَّهة فيُخفق
لا يحمّل الأمر عمداً تهيئةَ التطبيق بالطريقة التي تتبعها الأوامر الأخرى، لكي يتمكّن من تشخيص ملف config.toml قد يمنع digna من الإقلاع أصلاً.
استخدام الأمر¶
الخيارات¶
--configpath،-c: مسار ملف التهيئة، أو مسار مجلد يحتوي علىconfig.toml(الافتراضي./config.toml).--json: إخراج تقرير التحقق بصيغة JSON. له الأسبقية على--quiet.--quiet،-q: إخفاء التقرير والاعتماد على رمز الخروج وحده.
مثال¶
التحقق من ملف تهيئة محدّد وإخراج النتيجة بصيغة JSON:
مثال على المخرجات¶
Configuration validation report (source: config.toml):
- App config: OK
- Repository config: OK
- Base config: OK
- Logging config: OK
- Encryption config: FAILED
missing field `aes_gcm_key`
- OIDC config(s): OK
Overall: FAILED
الملف المفقود أو خطأ بناء الجملة في TOML لا يترك شيئاً يمكن التحقق منه قسماً بقسم، ويُبلَّغ عنه كخطأ واحد بدلاً من تقرير، بصرف النظر عن --quiet أو --json.
إدارة المستودع¶
repo check¶
يختبر الأمر repo check الاتصال بقاعدة البيانات ويتحقق من تثبيت المستودع وإصداره. ويُخفق إذا لم يكن المخطّط المهيَّأ موجوداً، أو إذا كان موجوداً لكنه لا يحتوي على مستودع digna.
الإصدار المبلَّغ عنه هو إصدار مخطّط المستودع، الذي يُرقَّم بشكل منفصل عن إصدار digna الذي يطبعه version.
استخدام الأمر¶
مثال على المخرجات¶
repo install¶
يثبّت الأمر repo install مستودع digna جديداً في المخطّط المهيَّأ في config.toml، منشئاً جميع المتتاليات والجداول والفهارس والقيود والسجلات الأولية المطلوبة.
أما المخطّط نفسه فهذا الأمر لا ينشئه — إذ يجب أن يكون موجوداً مسبقاً. كما يرفض الأمر التنفيذ إذا كان هناك مستودع مثبَّت بالفعل في ذلك المخطّط، ويحيل إلى repo upgrade إذا كان الإصدار المثبَّت أقدم.
استخدام الأمر¶
مثال على المخرجات¶
Installing repo version 3.0.0
✅ Sequences created.
✅ Tables and Indices created.
✅ Constraints created.
✅ Records inserted.
✅ Repo version 3.0.0 successfully installed.
repo upgrade¶
يطبّق الأمر repo upgrade ترحيلات مخطّط قاعدة البيانات للارتقاء بمستودع قائم إلى الإصدار الذي تتوقعه الإصدارة المثبَّتة. وتُطبَّق الترقيات خطوةً إصداريةً واحدة في كل مرة على امتداد مسار ترقية ثابت، وتُسجَّل كل خطوة مكتملة في المستودع.
إذا كان المستودع عند الإصدار المتوقَّع أصلاً، يبلّغ الأمر بأنه لا حاجة إلى ترقية ولا يُجري أي تغييرات.
استخدام الأمر¶
مثال على المخرجات¶
Upgrading from 2.3.1 to 2.3.2...
Upgrading from 2.3.2 to 3.0.0...
✅ Repo successfully upgraded to version 3.0.0.
repo prune¶
يزيل الأمر repo prune الصفوف التي بقيت بعد زوال المشروع أو مصدر البيانات الذي كانت تنتمي إليه. فحذف مشروع أو مصدر بيانات يزيل الكائن نفسه، لكنه يترك خلفه ملفات التعريف (profiles) والتنبؤات والحالات وأعداد الصفوف الخاصة به — وهذه مقايضة مقصودة، إذ إن حذفاً يكنس تلك الجداول أيضاً سيُبقي المستخدم في حالة انتظار. والأمر repo prune هو عملية التنظيف التي تزيلها، وتشغيله آمن في أي وقت: فهو لا يزيل إلا الصفوف التي لم يعد مشروعها أو مصدر بياناتها موجوداً.
أما الصفوف التي كتبتها الواجهة الخلفية المكتوبة بلغة Python في جداول لم تعد الإصدارة الحالية تستخدمها، فتُترك كما هي.
استخدام الأمر¶
الخيارات¶
--dry-run: يبلّغ عمّا سيُزال من دون إزالة أي شيء.
لا تُعرض إلا الجداول التي تحتوي على صفوف يتيمة. وإن لم توجد أي منها، يبلّغ الأمر بـ No orphaned rows found. وينتهي.
مثال¶
مثال على المخرجات¶
"check" 29342
check_profile 29342
check_prediction 29342
check_status 29342
column_status 32
inspection_query 253
---------------------------------------------
total 117854
✅ Removed 117854 orphaned row(s).
لعرض التقرير نفسه من دون إزالة أي شيء:
أعداد الصفوف متطابقة؛ ولا يختلف سوى السطر الأخير:
إدارة التشفير¶
crypt gen-key¶
ينشئ الأمر crypt gen-key مفتاح تشفير AES-GCM جديداً لاستخدامه كمفتاح تشفير في config.toml. ويجب أن يكون هناك ملف config.toml قابل للتحميل بالفعل، حتى وإن كان المفتاح المُنشأ لا يعتمد عليه.
استخدام الأمر¶
مثال على المخرجات¶
crypt encrypt¶
يشفّر الأمر crypt encrypt سلسلة نصية (مثل كلمة مرور قاعدة بيانات) باستخدام مفتاح AES-GCM المهيَّأ في config.toml، ثم يطبع النص المشفَّر.
استخدام الأمر¶
الوسائط¶
- VALUE: السلسلة النصية الصريحة المراد تشفيرها (مطلوبة).
مثال¶
crypt decrypt¶
يفكّ الأمر crypt decrypt تشفير سلسلة مشفَّرة بخوارزمية AES-GCM باستخدام المفتاح المهيَّأ في config.toml، ثم يطبع النص الصريح.
استخدام الأمر¶
الوسائط¶
- VALUE: السلسلة المشفَّرة المراد فك تشفيرها (مطلوبة).
مثال¶
إدارة المستخدمين¶
user add¶
ينشئ الأمر user add حساب مستخدم جديداً في مستودع digna. ويُخفق الأمر إذا كان هناك مستخدم بعنوان البريد الإلكتروني المعطى موجوداً بالفعل.
استخدام الأمر¶
الوسائط¶
- EMAIL: عنوان البريد الإلكتروني للمستخدم (مطلوب).
- PASSWORD: كلمة المرور الأولية للمستخدم (مطلوبة).
- DISPLAY_NAME: الاسم الظاهر الكامل للمستخدم (مطلوب).
الخيارات¶
--admin،-a: إنشاء المستخدم بصلاحيات مدير (مستخدم فائق).
مثال¶
لإنشاء حساب مدير:
مثال على المخرجات¶
user list¶
يسرد الأمر user list جميع المستخدمين المسجَّلين في هيئة جدول تتضمن المعرّف والبريد الإلكتروني والاسم الظاهر وراية المدير.
استخدام الأمر¶
مثال على المخرجات¶
ID EMAIL DISPLAY NAME ADMIN
-----------------------------------------------------------------------------------------------
42 jdoe@example.com John Doe false
43 admin@example.com Admin User true
user modify¶
يحدّث الأمر user modify الاسم الظاهر وصلاحيات المدير لحساب مستخدم قائم، يُحدَّد بعنوان بريده الإلكتروني.
يُكتب كلٌّ من الاسم الظاهر وراية المدير في كل مرة. والخيار --admin مفتاح تبديل لا قيمة: إغفاله يسحب صلاحيات المدير، لذا مرّره كلما أُريد للمستخدم أن يحتفظ بها أو يكتسبها.
استخدام الأمر¶
الوسائط¶
- EMAIL: البريد الإلكتروني للمستخدم المراد تعديله (مطلوب).
- DISPLAY_NAME: الاسم الظاهر المحدَّث (مطلوب).
الخيارات¶
--admin،-a: منح صلاحيات المدير. أغفله لسحبها.--valid-until،-v: مقبول لأغراض التوافق لكنه غير مطبَّق حالياً. تمريره يطبع تحذيراً ولا يغيّر شيئاً.
مثال¶
مثال على المخرجات¶
user modify-pwd¶
يحدّث الأمر user modify-pwd كلمة المرور لحساب مستخدم قائم.
استخدام الأمر¶
الوسائط¶
- EMAIL: البريد الإلكتروني للمستخدم المراد تحديث كلمة مروره (مطلوب).
- PASSWORD: كلمة المرور الجديدة (مطلوبة).
مثال¶
user delete¶
يزيل الأمر user delete حساب مستخدم من النظام.
استخدام الأمر¶
الوسائط¶
- EMAIL: البريد الإلكتروني للمستخدم المراد حذفه (مطلوب).
مثال¶
إدارة المشاريع ومصادر البيانات¶
project list¶
يسرد الأمر project list جميع المشاريع المتاحة في المستودع، مع عرض معرّفها واسمها ووصفها.
استخدام الأمر¶
مثال على المخرجات¶
ID NAME DESCRIPTION
------------------------------------------------------------------------------------------------------
7 ProjectA Sales data quality
8 ProjectB Finance data quality
project list-ds¶
يسرد الأمر project list-ds جميع مصادر البيانات المرتبطة بمشروع معيّن، مع عرض معرّفها واسمها ونوعها ومخطّطها واسم جدولها.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: اسم المشروع الذي تُسرد مصادر بياناته (مطلوب). ويجب أن يطابق الاسم تماماً.
مثال¶
مثال على المخرجات¶
ID NAME KIND SCHEMA TABLE
-------------------------------------------------------------------------------------------------------------
101 orders Table sales orders
102 customers Table sales customers
project export-ds¶
يصدّر الأمر project export-ds مصادر البيانات من مشروع إلى مستند JSON.
إذا لم يُعطَ --table-name ولا --table-id، تُصدَّر جميع مصادر بيانات المشروع.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: اسم المشروع المراد تصدير مصادر بياناته (مطلوب).
الخيارات¶
--table-name،-n: أسماء مصادر البيانات المراد تصديرها. يمكن إعطاء عدة أسماء مفصولة بمسافات.--table-id،-i: معرّفات مصادر البيانات المراد تصديرها. يمكن إعطاء عدة معرّفات مفصولة بمسافات.--exportfile،-f: المسار الذي تُحفظ فيه مصادر البيانات المصدَّرة (الافتراضي:data_sources_export.json).
مثال¶
لتصدير جميع مصادر البيانات من ProjectA:
لتصدير جداول محدّدة:
مثال على المخرجات¶
project import-ds¶
يستورد الأمر project import-ds مصادر البيانات من ملف تصدير إلى مشروع هدف، ويبلّغ لكل كائن عمّا أُنشئ أو حُدِّث أو تُخطّي.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: اسم المشروع الهدف المراد الاستيراد إليه (مطلوب).
- EXPORT_FILE: مسار ملف تصدير JSON (مطلوب).
الخيارات¶
--output-file،-o: الملف الذي يُكتب فيه تقرير الاستيراد. وبدونه يذهب التقرير إلى stdout.--output-format،-f: صيغة تقرير الاستيراد —tableأوjsonأوcsv(الافتراضي:table).
مثال¶
للحصول على تقرير قابل للقراءة آلياً:
digna project import-ds ProjectB my_export.json --output-format json --output-file import_report.json
يغطي التقرير أربعة مستويات من الكائنات — مصدر البيانات وتعريف مجموعة البيانات والسمة وقاعدة التحقق — ولكلٍّ منها إجراء الاستيراد ونتيجته ومعرّف الكائن الناتج وأي معلومات إضافية.
project plan-import-ds¶
يعرض الأمر project plan-import-ds معاينةً لاستيراد مصادر البيانات إلى مشروع هدف، مبيّناً أي الكائنات ستُنشأ أو تُحدَّث أو تُتخطّى، من دون تغيير أي شيء. وهو يقبل ملف التصدير نفسه وخيارات التقرير نفسها التي يقبلها project import-ds، ويضيف رقم خطوة لكل كائن مخطّط له.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: اسم المشروع الهدف (مطلوب).
- EXPORT_FILE: مسار ملف التصدير (مطلوب).
الخيارات¶
--output-file،-o: الملف الذي تُكتب فيه خطة الاستيراد. وبدونه تذهب الخطة إلى stdout.--output-format،-f: صيغة خطة الاستيراد —tableأوjsonأوcsv(الافتراضي:table).
مثال¶
project cleanup¶
يزيل الأمر project cleanup نتائج الفحص التي راكمها مشروع خلال نطاق زمني من التواريخ — ملفات التعريف (profiles) والتنبؤات وأعداد الصفوف وكل حالات الفحوصات والسمات ومجموعات البيانات ومصادر البيانات. وهو يزيل بالضبط ما كتبه فحص تلك التواريخ، بحيث يمكن إعادة فحص النطاق بعد ذلك لإعادة بنائه.
لا يُزال سجل Timeliness وسجل Schema Tracker: فهما يسجّلان ما رصده digna في يوم معيّن وليس نتيجة مشتقة منه، لذا فإن تنظيف نطاق زمني سابق يتركهما سليمين.
يُنظَّف كل مصدر بيانات في معاملة (transaction) خاصة به، لذا فإن أي تشغيل مُقاطَع يترك مصادر بيانات كاملة بدلاً من مصدر نُظِّف نصفه.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: المشروع المراد تنظيفه (مطلوب). مشروع واحد لكل استدعاء.
- FROM_DATE: أول تاريخ تُزال نتائجه، بالصيغة
YYYY-MM-DD(مطلوب). - TO_DATE: آخر تاريخ تُزال نتائجه، شاملاً، بالصيغة
YYYY-MM-DD(مطلوب).
الخيارات¶
--table-name،-n: يقصر التنظيف على مصادر البيانات هذه. يمكن تمرير عدة أسماء مفصولة بمسافات.--table-filter: يقصر التنظيف على مصادر البيانات التي يحتوي اسمها على هذه السلسلة الجزئية.--dry-run: يسرد مصادر البيانات التي ستُنظَّف من دون إزالة أي شيء.--timing: يعرض المدة التي استغرقها التنظيف.
يُجمع بين --table-name و--table-filter بمنطق OR — أي يُنظَّف مصدر البيانات إذا ورد اسمه أو إذا طابقته السلسلة الجزئية. ويُخفق الأمر إذا لم يطابق أي مصدر بيانات، بدلاً من الإبلاغ عن نجاح تنظيف لم يفعل شيئاً.
مثال¶
مقصوراً على مصدر بيانات واحد:
مثال على المخرجات¶
Cleaning up project 'ProjectA' from 2026-01-01 to 2026-06-30:
- Table1
- Table2
- Table3
✅ Cleaned up 3 data source(s).
لمعرفة مصادر البيانات التي ستُنظَّف من دون إزالة أي شيء:
كل سطر مُعلَّم، بحيث لا يمكن الخلط بين التشغيل التجريبي والتشغيل الفعلي:
Cleaning up project 'ProjectA' from 2026-01-01 to 2026-06-30:
- Table1 (dry run, nothing removed)
- Table2 (dry run, nothing removed)
- Table3 (dry run, nothing removed)
Dry run - 3 data source(s) would be cleaned up.
إدارة الفحوصات¶
inspection run¶
ينشئ الأمر inspection run طلب فحص لمشروع ونطاق تواريخ، ثم — تبعاً للخيارات المعطاة — إما ينتظره، أو يعود فوراً، أو ينفّذه داخل العملية نفسها.
أنماط التنفيذ الثلاثة هي:
- الافتراضي (بلا راية): يوضع الطلب في طابور الانتظار للواجهة الخلفية، ويستقصيه CLI كل ثانيتين مع طباعة تقدّم المهام حتى يبلغ الفحص حالة نهائية. ويلزم وجود
digna serveقيد التشغيل، وإلا لن يلتقط أحد الطلب. --async-mode: يوضع الطلب في طابور الانتظار ويُطبع معرّفه فوراً. استخدمinspection statusلمتابعته.--bypass-backend: تُنفَّذ عملية الفحص بواسطة عملية CLI نفسها ولا توضع في طابور الانتظار، فلا حاجة إلى خادم قيد التشغيل.
الخياران --async-mode و--bypass-backend متنافيان.
وفي كل الأنماط ينتهي الأمر برمز خروج غير صفري إذا لم يكتمل الفحص بنجاح.
استخدام الأمر¶
الوسائط¶
- PROJECT_NAME: اسم المشروع الهدف (مطلوب). ويجب أن يطابق الاسم تماماً.
- START_DATE: تاريخ بداية النطاق بصيغة
YYYY-MM-DD(مطلوب). - END_DATE: تاريخ نهاية النطاق بصيغة
YYYY-MM-DD(مطلوب).
الخيارات¶
--table-name: يقصر الفحص على مصدر بيانات واحد من المشروع، يُعطى باسم مصدر البيانات. وبدونه تُفحص جميع مصادر بيانات المشروع.--async-mode: يضع الفحص في طابور الانتظار ويطبع معرّف الطلب بدلاً من انتظاره. لا يمكن دمجه مع--bypass-backend.--bypass-backend: ينفّذ الفحص مباشرة في عملية CLI بدلاً من وضعه في طابور الانتظار للواجهة الخلفية. لا يمكن دمجه مع--async-mode.
مثال¶
لتقديم فحص غير متزامن:
لفحص مصدر بيانات واحد:
مثال على المخرجات¶
النمط الافتراضي:
Inspection request submitted. Waiting for completion (Request ID: 1024)...
Progress: 3/10 tasks completed (0 failed)
Progress: 10/10 tasks completed (0 failed)
Inspection completed successfully.
Inspection successful for project: ProjectA
النمط غير المتزامن:
inspection status¶
يستعلم الأمر inspection status عن حالة طلب فحص وتقدّم مهامه اعتماداً على معرّف الطلب.
استخدام الأمر¶
الوسائط¶
- INSPECTION_REQUEST_ID: المعرّف الرقمي لطلب الفحص (مطلوب).
مثال¶
مثال على المخرجات¶
Inspection Request ID: 1024
Status: Running
Project ID: 7
Date Range: 2024-01-01 to 2024-01-31
Progress: 3/10 tasks completed (0 failed)
inspection abort¶
يطلب الأمر inspection abort إلغاء طلبات الفحص الجارية أو المعلّقة. وهو يسجّل حدث إيقاف لكل طلب متأثّر؛ والواجهة الخلفية هي التي تتصرّف بناءً عليه، فالإجهاض طلبُ توقّف لا إنهاءٌ فوري.
استخدام الأمر¶
الوسائط¶
- INSPECTION_REQUEST_ID: معرّف طلب الفحص المراد إجهاضه. مطلوب ما لم يُعطَ
--killall.
الخيارات¶
--killall: يجهض جميع طلبات الفحص الجارية والمعلّقة حالياً. وله الأسبقية على أي معرّف طلب يُعطى معه.
مثال¶
لإجهاض طلب محدّد:
لإجهاض جميع الفحوصات النشطة والمنتظرة:
مثال على المخرجات¶
يبلّغ --killall عمّا فعله؛ أما إجهاض طلب واحد فلا ينتج عنه أي مخرجات ويبلّغ عن نجاحه عبر رمز خروجه.
إدارة التراخيص¶
license check¶
يتحقق الأمر license check من ملف license.toml، مؤكّداً توقيعه مقابل المفتاح العام المرفق مع التثبيت ومتحقّقاً من أنه لم ينتهِ. وهو لا يقرأ أي تهيئة للتطبيق، لذا يعمل أيضاً قبل إعداد config.toml.
استخدام الأمر¶
مثال على المخرجات¶
يُبلَّغ عن التوقيع غير الصالح والترخيص المنتهي كخطأين متمايزين، وكلاهما برمز الخروج 1.
الخادم والخدمات الخلفية¶
serve¶
يشغّل الأمر serve خادم واجهة REST البرمجية لـ digna إلى جانب مجدول الفحوصات الخلفي ومدير الفحوصات. وعند الإقلاع يُخفق أيضاً أي فحص لا يزال المستودع يسجّله على أنه قيد التشغيل، إذ لا يمكن لشيء أن يكون قد نجا من عملية سابقة.
يعمل الأمر في المقدمة إلى أن يُوقَف.
استخدام الأمر¶
الخيارات¶
--address: عنوان الشبكة الذي يُربط به خادم الواجهة البرمجية (الافتراضي:127.0.0.1).--port: رقم المنفذ الذي يُستمع عليه (الافتراضي:8000).
مثال¶
مثال على المخرجات¶
إدارة خدمة Windows¶
متاحة على Windows فقط. تسجّل هذه الأوامر الواجهة الخلفية لـ digna لدى مدير خدمات Windows وتتحكم بها؛ أما الخدمة نفسها فتشغّل serve في الخلفية. يجب تنفيذ كل أمر من موجه أوامر (Command Prompt) بصلاحيات مرتفعة، ويقبل كل منها --name بحيث يمكن استهداف خدمة مسجلة باسم غير الاسم الافتراضي.
windows install¶
يسجّل الأمر windows install digna كخدمة Windows.
يُسجَّل العنوان والمنفذ المحددان هنا في تسجيل الخدمة، وهما ما تُربط به الخدمة — ولا يُقرآن من config.toml. لتغييرهما لاحقاً، ألغِ تثبيت الخدمة ثم ثبّتها مجدداً.
استخدام الأمر¶
الخيارات¶
--name: الاسم الذي تُسجَّل الخدمة تحته (الافتراضي:digna).--display-name: الاسم المعروض في services.msc (الافتراضي:digna).--description: الوصف المعروض في services.msc (الافتراضي:digna data quality backend).--address: العنوان الذي تربط الخدمة واجهتها البرمجية به (الافتراضي:127.0.0.1).--port: المنفذ الذي تربط الخدمة واجهتها البرمجية به (الافتراضي:8000).--working-dir: الدليل الذي يحتوي علىconfig.tomlوlicense.toml، والذي تجعله الخدمة دليل عملها (الافتراضي: دليل الملف التنفيذيdigna).--start-type: متى تبدأ الخدمة —autoمع Windows، وmanualعند الطلب فقط، وdisabledمسجلة لكنها ترفض البدء (الافتراضي:auto).--account: الحساب الذي تعمل الخدمة به، مثلDOMAIN\userأو.\user(الافتراضي:LocalSystem).--password: كلمة مرور--account.
مثال¶
التسجيل باسم ثانٍ، مع التشغيل بحساب نطاق (domain):
digna windows install --name digna-test --display-name "digna (test)" --account DOMAIN\svc_digna --password <password>
windows start¶
يشغّل الأمر windows start خدمة مسجلة.
استخدام الأمر¶
الخيارات¶
--name: الاسم الذي سُجّلت الخدمة تحته (الافتراضي:digna).
windows stop¶
يوقف الأمر windows stop خدمة قيد التشغيل. أوقف الخدمة قبل استبدال أي ملف من ملفات التطبيق.
استخدام الأمر¶
الخيارات¶
--name: الاسم الذي سُجّلت الخدمة تحته (الافتراضي:digna).
windows uninstall¶
يلغي الأمر windows uninstall تسجيل الخدمة. أوقفها أولاً.
استخدام الأمر¶
الخيارات¶
--name: الاسم الذي سُجّلت الخدمة تحته (الافتراضي:digna).