إحكام / الواجهة البرمجية

الواجهة البرمجية

v1 قراءة فقط مفاتيح على مستوى المنظمة

اربط إحكام بأنظمتك: اسحب نصوص الأطر والمواءمة الرسمية ونتائج التقييم وخطط المعالجة والأدلة إلى لوحاتك أو نظام التذاكر لديك، دون نسخ يدوي ودون تصدير ملفات.

المصادقة

كل طلب يحمل مفتاح منظمتك في ترويسة التفويض، والمفاتيح تُنشأ من لوحة التقييم بحساب مالك المنظمة، وتُعرض مرة واحدة فقط عند الإنشاء، ويُحفظ عندنا تجزئتها لا نصها.

curl https://grc.cybers.biz/api/v1/frameworks \
  -H "Authorization: Bearer ehk_xxxxxxxxxxxxxxxxxxxxxxxx"
المفتاح يمنح قراءة كل بيانات منظمتك، فتعامل معه معاملة كلمة المرور: لا تضعه في شفرة العميل ولا في مستودع عام، ودوّره عند الاشتباه، والإلغاء فوري من اللوحة نفسها.

الحدود والأخطاء

الحالةالمعنى
401 missing_keyما فيه ترويسة تفويض
401 invalid_keyمفتاح غير معروف أو ملغى
404 not_foundالمورد غير موجود أو خارج نطاق منظمتك
429 rate_limitedتجاوز 600 طلب في الساعة

كل استجابة ناجحة تتضمن ok: true، وبيانات الأطر ثابتة يمكن تخزينها مؤقتًا لديك.

الأطر التنظيمية

GET/api/v1/frameworksقائمة الأطر وإحصاءاتها
GET/api/v1/frameworks/{slug}الإطار كاملًا بنصوص ضوابطه

القيم المتاحة لـslug: ecc، cscc، ccc، tcc، corf، nbcc.

{
  "ok": true,
  "framework": {
    "slug": "ecc", "code": "ECC-2:2024",
    "name": { "ar": "الضوابط الأساسية للأمن السيبراني", "en": "Essential Cybersecurity Controls" },
    "stats": { "domains": 4, "subdomains": 28, "controls": 108, "subcontrols": 59 },
    "domains": [ /* المجالات والمكونات والضوابط بنصوصها */ ]
  }
}

المواءمة

GET/api/v1/alignmentالإحالات الرسمية بين الأطر

يعيد الإحالات مرتبة حسب ضابط الضوابط الأساسية، ومعها جملة الإحالة كما وردت في نص الجهة، وهو ما يسمح لك ببناء تغطية متعددة الأطر داخل أنظمتك.

{
  "ok": true, "hub": "ecc",
  "stats": { "links": 82, "ecc_anchors": 31, "confirmed_both_languages": 36 },
  "by_ecc": { "2-2-3": [ { "fw": "cscc", "num": "2-2-1", "evidence": { "ar": "..." } } ] }
}

التقييمات

GET/api/v1/assessmentsتقييمات منظمتك ونتائجها
GET/api/v1/assessments/{id}التفاصيل والإجابات
{
  "ok": true,
  "assessments": [
    { "id": 12, "title": "تقييم الربع الثالث", "framework": "ecc",
      "score": { "pct": 62.5, "answered": 108, "total": 108, "yes": 60, "partial": 25, "no": 20, "na": 3 } }
  ]
}

خطط المعالجة والأدلة

GET/api/v1/assessments/{id}/tasksالمهام بحالاتها وملاكها
GET/api/v1/assessments/{id}/evidenceسجل الأدلة

حالات المهام: open، in_progress، done، accepted. هذا المسار مخصص لمزامنة المهام مع نظام التذاكر لديك.

أمثلة عملية

لوحة التزام في نظامك الداخلي

const H = { Authorization: `Bearer ${process.env.EHKAM_KEY}` };
const { assessments } = await (await fetch(
  'https://grc.cybers.biz/api/v1/assessments', { headers: H })).json();
const latest = assessments[0];
console.log(latest.title, latest.score.pct + '%');

فتح تذكرة لكل فجوة مفتوحة

const { tasks } = await (await fetch(
  `https://grc.cybers.biz/api/v1/assessments/${id}/tasks`, { headers: H })).json();
tasks.filter(t => t.status === 'open')
     .forEach(t => createTicket(t.control_num, t.title, t.owner, t.due));
الواجهة اليوم للقراءة فقط عمدًا: الكتابة تمر عبر الواجهة التفاعلية حيث تُسجَّل كل تغييرات المستخدمين في سجل التدقيق، ومسارات الكتابة والخطافات ضمن خطة الإصدار القادم.