digna REST API 2026.11¶
تتيح REST API الخاصة بـ digna لأدواتك ومسارات البيانات الخاصة بك العمل مع digna عبر HTTP وJSON: قراءة المشاريع ونتائج الفحص، وإدارة مصادر البيانات ومجموعات البيانات والسمات، وبدء عمليات الفحص، على سبيل المثال في نهاية تحميل البيانات. وتستخدم Python SDK واجهة API نفسها.
تتناول هذه الصفحة ما تشترك فيه جميع الطلبات. وتسرد صفحات الموارد كل نقطة نهاية مع معاملاتها ونص الطلب والاستجابات والمخططات:
| المورد | نقاط النهاية |
|---|---|
| Projects | قراءة المشاريع |
| DB Connections | قراءة اتصالات قواعد البيانات |
| Data Sources | إنشاء مصادر البيانات وقراءتها وتحديثها وحذفها |
| Data Sets | إنشاء مجموعات البيانات وقراءتها وتحديثها وحذفها |
| Attributes | إنشاء السمات وقراءتها وتحديثها وحذفها |
| Check Definitions | قراءة تعريفات الفحوصات |
| Inspection Requests | بدء عمليات الفحص ومتابعة تقدّمها |
| Inspection Statuses | قراءة نتائج الفحص لكل مشروع ومصدر بيانات ومجموعة بيانات |
عنوان URL الأساسي¶
واجهة API جزء من الواجهة الخلفية لـ digna. يبدأ كل مسار بـ /v1 بعد عنوان الواجهة الخلفية:
عنوان الواجهة الخلفية هو العنوان نفسه الذي تستخدمه لوحة التحكم، أي baseUrl في القسم [api] من الملف dashboard/dashboard_config.toml. استخدم HTTPS كلما لم يكن المستدعي وdigna على الجهاز نفسه، لأن كل طلب يحمل مفتاح API.
المصادقة¶
يرسل كل طلب مفتاح API لمستخدم في digna في الترويسة Authorization:
لإنشاء مفتاح، افتح ملفك الشخصي في الزاوية السفلية اليسرى من لوحة التحكم، وانقر على API Keys، ثم على Add API Key، وانسخ المفتاح. لا يُعرض إلا مرة واحدة. وتعمل المفاتيح نفسها أيضًا مع digna MCP Server.
يُنفَّذ الطلب بصلاحيات المستخدم صاحب المفتاح. ويتطلب الإنشاء والتغيير والحذف دور editor في المشروع؛ وإلا يُرفض الطلب بالرمز 403 والرسالة You don't have permission to edit this project.
استخدم مستخدمًا مخصّصًا للأتمتة
أنشئ مستخدمًا في digna لكل تكامل، وامنحه فقط المشاريع والأدوار التي يحتاجها، وأنشئ مفتاحه مع تاريخ انتهاء صلاحية. وبذلك يمكنك إلغاء وصول تكامل واحد بحذف مفتاحه، دون التأثير في أي شخص آخر.
إرسال طلب¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
الاستجابات بتنسيق JSON. وتُعاد القوائم كمصفوفة JSON. ونصوص الطلبات بتنسيق JSON أيضًا، وتُرسل مع Content-Type: application/json.
الحدود وعوامل التصفية¶
تُعيد نقاط نهاية القوائم limit عنصرًا على الأكثر: 200 افتراضيًا، وحتى 5000. وتُرفض القيمة الواقعة خارج هذا النطاق بالرمز 400. لا توجد إزاحة ولا رمز صفحة، لذا ضيّق القائمة بعوامل التصفية الخاصة بها بدلًا من ذلك، على سبيل المثال project_id أو data_source_id أو start_date وend_date في حالات الفحص.
يُلغى الطلب الذي يستغرق أكثر من 60 ثانية مع 408 Request Timeout.
الأخطاء¶
تحتوي استجابة الخطأ على نص JSON يتضمن رمزًا ورسالة:
| الحالة | الرمز | المعنى |
|---|---|---|
400 | BAD_REQUEST | الطلب غير صالح، على سبيل المثال limit خارج النطاق |
401 | NOT_AUTHENTICATED | مفتاح API مفقود أو مشوَّه أو غير معروف أو منتهي الصلاحية |
403 | NOT_AUTHORIZED | لا يملك مستخدم المفتاح الدور الذي يحتاجه هذا الطلب |
403 | INVALID_LICENSE | انتهت صلاحية ترخيص digna |
404 | NOT_FOUND | المشروع أو مصدر البيانات أو العنصر الآخر غير موجود |
500 | INTERNAL_ERROR | خطأ غير متوقع في digna. توجد التفاصيل في سجل الواجهة الخلفية |
يوضح message في استجابة 401 ما المشكلة في المفتاح:
| الرسالة | السبب |
|---|---|
Missing Authorization header | لم تُرسل الترويسة Authorization |
Invalid Authorization header format | لا تبدأ القيمة بـ Bearer |
Invalid API key | المفتاح خاطئ، أو تم حذفه |
API key expired | انتهت صلاحية المفتاح. أنشئ مفتاحًا جديدًا |
تشغيل فحص¶
يبدأ التكامل النموذجي فحصًا عند انتهاء تحميل البيانات، وينتظر اكتماله، ثم يقرأ النتيجة:
- ابدأ الفحص باستخدام
POST /v1/inspection-requests. تحتوي الاستجابة علىidالطلب. - تابع تقدّمه باستخدام
GET /v1/inspection-requests/{inspection_request_id}. تنتقل قيمةstatusمنPENDINGمرورًا بـRUNNINGإلىCOMPLETED، أو تنتهي بـFAILEDأوABORTEDأوCANCELLED. اسأل مجددًا كل بضع ثوانٍ إلى أن تتوقف عن التغيّر. - اقرأ النتيجة باستخدام
GET /v1/inspection-statuses/data-sourcesللتواريخ التي جرى فحصها. لكل عنصرstatusإجمالية:0(OK) أو1(تحذير) أو2(حرجة) أو-1(بلا حالة)، وحالة لكل وحدة مع عدد الفحوصات الناجحة وغير المؤكدة والفاشلة.
curl -X POST https://digna.example.com/v1/inspection-requests \
-H "Authorization: Bearer $DIGNA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"project_id": 1,
"include_all_data_sources": true,
"data_source_ids": [],
"start_date": "2026-11-06",
"end_date": "2026-11-06",
"mode": "DAILY",
"weekly_mode_weekdays": [],
"monthly_mode_days": [],
"use_notification": true
}'
مستند OpenAPI¶
تصف كل عملية تثبيت لـ digna واجهة API هذه في مستند OpenAPI 3.1، وتوفّر Swagger UI تفاعلية لتجربة الطلبات عليها:
| ماذا | العنوان |
|---|---|
| مستند OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
مستند Release 2026.11 متاح هنا أيضًا: openapi.json. استخدمه لتوليد عميل بلغة برمجة أخرى.
تقتصر التغطية على نقاط النهاية /v1
تتواصل لوحة التحكم أيضًا مع الواجهة الخلفية عبر نقاط نهاية داخلية أخرى. وهي ليست جزءًا من واجهة API هذه وقد تتغير مع أي إصدار، لذا ابنِ التكاملات على نقاط النهاية /v1 فقط.