> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# سجل معالجة البيانات في GDPR (ROPA + DPIA)

> وثِّق سجلات أنشطة المعالجة وفق GDPR الفقرة 30 وسجِّل تقييمات الأثر على حماية البيانات وفق الفقرة 35 في سجل مملوك للمستأجر مع مخزون تدقيق قابل للتصدير.

# سجل معالجة البيانات في GDPR (ROPA + DPIA)

**ROPA** (سجل أنشطة المعالجة) و **DPIA** (تقييم الأثر على حماية البيانات) هما
جانب التوثيق الذاتي في GDPR. فبينما تغطي DSAR ما يطلبه منك صاحب بيانات,
هذا السجل يغطي ما يجب أن تكتبه منظمتك عن نفسها — قبل وصول أي طلب.

<Warning>
  تصف هذه الصفحة ضوابط منصة Orbit. إنها **ليست مشورة قانونية.**
  كونك متحكماً أو معالجاً، وأي أنشطة عالية المخاطر، وما يجب أن يحتويه
  سجلك كل ذلك يعتمد على معالجتك. اعتمد على مستشار قانوني مؤهل.
</Warning>

جميع نقاط النهاية أدناه متجذرة في
`https://api.orbit.devotel.io/api/v1/compliance`.

***

## ما تُطالب به الفقرة 30 والفقرة 35

**GDPR الفقرة 30** تلزم كل متحكم (وكل معالج) بالاحتفاظ بسجل لأنشطة
معالجته. ولكل نشاط يسجل السجل **الغرض**, و**فئات أصحاب البيانات والبيانات**, و
**المذيجين**, وأي **نقل عابر للحدود وضمانه**, و**فترة الاحتفاظ**, و
**الإجراءات الأمنية** المطبقة. ويمكن لسلطة إشرافية طلب السجل عند الطلب
(الفقرة 30(4)).

**GDPR الفقرة 35** تلزم بـ **DPIA** قبل معالجة مرجحة لتكون عالية
المخاطر — اتخاذ قرار آلي بآثار مهمة, أو معالجة على نطاق واسع لبيانات
الفئة الخاصة, أو مراقبة منهجية للمناطق المفتوحة للجمهور. ويسجل التقييم
الضرورة والتناسب, والمخاطر المكتشفة, والتخفيفات, والمخاطر المتبقية,
والنتيجة.

تفحص Orbit كل نشاط تدخله ضد مشغلات الفقرة 35(3) وتوسم ما إذا كان DPIA
مطلوباً — وتمنع تفعيل نشاط موسوم حتى يسجل الـ DPIA (راجع [دورة حياة
الحالة](#status-lifecycle)).

## السجل لك — Orbit تحفظه، ولا تملأه

يوثق السجل معالجة منظمتك **أنت**. توفر Orbit التخزين، ودورة حياة
الحالة، وفحص الـ DPIA، والتصدير الجاهز للتدقيق — ولا تقرر أبداً ما
هو أساس قانونيك أو ما فترة الاحتفاظ المناسبة. كل نشاط يُنشأ، ويُدفع,
ويُقيَّم من فريقك الخاص، مما يطابق كيف تقرأ المنظمات الفقرة 30: يجب
أن يعكس السجل معرفة المتحكم الخاصة.

يحصل كل نشاط على مرجع بشري عند الإدخال (مثلاً `ROPA-2026-0004`) لتتمكن
من الاستشهاد به في سياساتك الداخلية وفي مراسلاتك مع سلطة.

***

## تسجيل أنشطة المعالجة

### أنشئ نشاطاً

`POST /compliance/processing-activities` — يتطلب مفتاح API لمسؤول
أو مالك. ينشأ النشاط في حالة `draft`.

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/processing-activities \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customer support call recordings",
    "description": "Voice recordings of inbound support calls used for quality review and dispute resolution.",
    "purpose": "Quality assurance and dispute handling for support interactions.",
    "controller_role": "controller",
    "lawful_basis": "legitimate_interests",
    "data_subject_categories": ["customers", "prospects"],
    "data_categories": ["audio recordings", "caller number", "agent notes"],
    "special_categories": [],
    "recipients": ["support operations team"],
    "cross_border_transfers": false,
    "retention_period": "90 days after call, then deleted",
    "security_measures": ["encryption at rest", "role-restricted access", "audit logging"],
    "large_scale": false,
    "automated_decision_making": false,
    "systematic_monitoring": false
  }'
```

يرجع `201 Created` مع النشاط وكتلة فحص `screening` :

```json theme={null}
{
  "id": "processingActivity_7kf2…",
  "reference": "ROPA-2026-0004",
  "status": "draft",
  "screening": {
    "required": false,
    "triggers": []
  }
}
```

| Field                       | Type      | Notes                                                                                                                                         |
| --------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                      | string    | **مطلوب.** 2–200 حرف.                                                                                                                         |
| `description`               | string    | **مطلوب.** 2–8000 حرف.                                                                                                                        |
| `purpose`                   | string    | **مطلوب.** الفقرة 30(1)(ب).                                                                                                                   |
| `controller_role`           | enum      | `controller` (افتراضي)، `joint_controller`, `processor`.                                                                                      |
| `lawful_basis`              | enum      | **مطلوب.** واحد من `consent`, `contract`, `legal_obligation`, `vital_interests`, `public_task`, `legitimate_interests` (الفقرة 6(1) من GDPR). |
| `data_subject_categories`   | string\[] | الفقرة 30(1)(ج) — من تكون البيانات عنه.                                                                                                       |
| `data_categories`           | string\[] | الفقرة 30(1)(ج) — ما هي البيانات.                                                                                                             |
| `special_categories`        | string\[] | الفقرة 9 فئات خاصة موجودة — وجودها يُدخل في فحص DPIA.                                                                                         |
| `recipients`                | string\[] | الفقرة 30(1)(د) — فئات المذيجين.                                                                                                              |
| `cross_border_transfers`    | boolean   | الفقرة 30(1)(ه) — نقل خارج المنطقة الاقتصادية الأوروبية.                                                                                      |
| `transfer_safeguard`        | string    | ضمان الفقرتين 44–50 المعتمد (SCCs، ملاءمة، BCRs…).                                                                                            |
| `retention_period`          | string    | الفقرة 30(1)(و) — مرجع سياسة نصي حر.                                                                                                          |
| `security_measures`         | string\[] | الفقرة 30(1)(م) / الفقرة 32 مقاييس فنية وتنظيمية.                                                                                             |
| `large_scale`               | boolean   | يُدخل في فحص الفقرة 35.                                                                                                                       |
| `automated_decision_making` | boolean   | مشغل الفقرة 35(3)(أ).                                                                                                                         |
| `systematic_monitoring`     | boolean   | مشغل الفقرة 35(3)(ج).                                                                                                                         |

### فحص الـ DPIA

كل استجابة `POST`, `GET`, `PATCH`, و `PUT …/dpia` تتضمن كتلة `screening`.
هي توسم مشغلات الفقرة 35(3) قطعياً:

* `automated_decision_making: true` → اتخاذ قرار آلي بآثار قانونية
  أو مهمة مماثلة (الفقرة 35(3)(أ)).
* `systematic_monitoring: true` → مراقبة منهجية لمنطقة منكشفة
  للجمهور (الفقرة 35(3)(ج)).
* `special_categories` غير فارغة مع `large_scale: true` →
  معالجة على نطاق واسع لفئات خاصة (الفقرة 35(3)(ب)).
* مؤشر فئة خاصة أو النطاق الواسع وحيداً يظل يظهر كمؤشر مخاطر عالية
  (الفقرة 9 / الفقرة 35(1)).

`screening.required: true` يعني أن DPIA يجب أن يسجل قبل أن ينتقل
النشاط إلى `active`.

### دورة حياة الحالة

ينتقل النشاط عبر:

`draft` → `active` → `under_review` → `retired`

`PATCH /compliance/processing-activities/{id}` يحدث الحقول
القابلة للتعديل و/أو يدفع الحالة:

```bash theme={null}
curl -X PATCH https://api.orbit.devotel.io/api/v1/compliance/processing-activities/processingActivity_7kf2… \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{ "status": "active" }'
```

تنشيط نشاط يوسم فحصه ضرورة DPIA يرفض بـ `409 Conflict` حتى يسجل
DPIA نتيجته ليست `do_not_proceed`. هذا هو ما يجعل السجل استباقياً —
المعالجة عالية المخاطر لا تذهب حية غير موثقة.

### اقرأ السجل

* `GET /compliance/processing-activities` — السجل كامل مع ملخص:
  عدد حسب الحالة، وكم نشاطا يوسمه الفحص كمطلوب DPIA (`dpiaRequired`),
  وكم منها يظل بلا DPIA مسجل (`dpiaMissing`), وكم DPIA مسجلاً وقع
  على مخاطر متبقية عالية (`highResidualRisk`).
* `GET /compliance/processing-activities/{id}` — نشاط واحد مع
  فحصه و، بمجرد تسجيله، رابط DPIA.

***

## تسجيل DPIA

`PUT /compliance/processing-activities/{id}/dpia` — يتطلب مفتاح
API لمسؤول أو مالك. يسجل (أو يستبدل) تقييم الفقرة 35 للنشاط.

```bash theme={null}
curl -X PUT https://api.orbit.devotel.io/api/v1/compliance/processing-activities/processingActivity_7kf2…/dpia \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "necessity_proportionality": "Call recording is limited to support lines; retention is capped at 90 days; access is restricted to the support operations team.",
    "risks_identified": ["Unauthorised access to recordings", "Retention beyond stated purpose"],
    "likelihood": "medium",
    "severity": "high",
    "mitigations": ["Role-restricted access", "Automated deletion at 90 days", "Access audit trail"],
    "residual_risk": "medium",
    "dpo_consulted": true,
    "outcome": "proceed_with_safeguards"
  }'
```

| Field                       | Type      | Notes                                                                                                                                    |
| --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `necessity_proportionality` | string    | **مطلوب.** الفقرة 35(7)(ب).                                                                                                              |
| `risks_identified`          | string\[] | مخاطر على حقوق وحريات أصحاب البيانات.                                                                                                    |
| `likelihood`                | enum      | **مطلوب.** `low`, `medium`, `high`.                                                                                                      |
| `severity`                  | enum      | **مطلوب.** `low`, `medium`, `high`.                                                                                                      |
| `mitigations`               | string\[] | الفقرة 35(7)(د) — مقاييس مأخوذة لمعالجة المخاطر.                                                                                         |
| `residual_risk`             | enum      | المخاطر المتبقية بعد التخفيفات. تُفترض إلى مصفوفة تقييم الاحتمال × الشدة عند إغفالها.                                                    |
| `dpo_consulted`             | boolean   | الفقرة 35(2).                                                                                                                            |
| `outcome`                   | enum      | قرار الفقرة 35(7)(د): `proceed`, `proceed_with_safeguards`, `consult_authority`, `do_not_proceed`. تُفترض إلى `proceed_with_safeguards`. |

`consult_authority` يرتبط بواجب الاستشارة المسبقة في الفقرة 36 المدين
عندما لا يمكن تخفيف مخاطر متبقية عالية. ونتيجة `do_not_proceed` تمنع
تفعيل النشاط — اتركها فقط عندما يستنتج التقييم أن المعالجة لا يمكن
إن تتقدم بشرعية.

يسجل كل DPIA من قيَّمه ومتى (`assessedAt`, `assessedBy`).

***

## تصدير مخزون الفقرة 30

`GET /compliance/processing-activities/inventory` يرجع السجل كاملاً
مشكلاً بشكل الجاهز للتدقيق — الملحق الذي يسلمه DPO إلى سلطة إشرافية
عند طلب الفقرة 30(4), أو يوصِّله بطلب أدلة المدقق.

```bash theme={null}
curl https://api.orbit.devotel.io/api/v1/compliance/processing-activities/inventory \
  -H "X-API-Key: dv_live_sk_..."
```

```json theme={null}
{
  "generatedAt": "2026-08-24T09:30:00.000Z",
  "recordCount": 1,
  "records": [
    {
      "reference": "ROPA-2026-0004",
      "name": "Customer support call recordings",
      "purpose": "Quality assurance and dispute handling for support interactions.",
      "controllerRole": "controller",
      "lawfulBasis": "legitimate_interests",
      "dataSubjectCategories": ["customers", "prospects"],
      "dataCategories": ["audio recordings", "caller number", "agent notes"],
      "specialCategories": [],
      "recipients": ["support operations team"],
      "crossBorderTransfers": false,
      "transferSafeguard": null,
      "retentionPeriod": "90 days after call, then deleted",
      "securityMeasures": ["encryption at rest", "role-restricted access", "audit logging"],
      "status": "draft",
      "dpiaRequired": false,
      "dpiaTriggers": [],
      "dpiaRecorded": false,
      "dpiaOutcome": null,
      "residualRisk": null
    }
  ]
}
```

يحمل كل سجل حالة DPIA — `dpiaRequired`, `dpiaRecorded`, `dpiaOutcome`,
`residualRisk` — لذا يكون المخزون بمثابة دليل على أن المعالجة عالية
المخاطر فُحصت وقُوِّمت.

***

## السيطرة على الوصول

القراءات (`GET`) متاحة لأي عضو موثَّق في منظمتك. الكتابات (`POST`,
`PATCH`, `PUT …/dpia`) مقصورة على أدوار **المالك** و**المسؤول** — السجل
ضابط تنظيمي، يطابق باقي كتابة امتثال (حوادث الأختراق، سياسة الاحتفاظ).
كل إدخال، وتحديث، وتسجيل DPIA يكتب في سجل تدقيقك مع المنفِّذ، ومرجع
النشاط، والنتيجة.

***

## مراجع ذات صلة

* [بناء وضع GDPR كاملاً من الأصل](/compliance/gdpr-posture-guide) —
  التسلسل الذي يوثق السجل جزءاً واحداً منه.
* [طلبات وصول أصحاب البيانات (DSAR)](/compliance/dsar) — الناحية
  الأخرى من GDPR: استقبال، وتوثيق، وإنفاذ طلبات الوصول، والمسح، و
  قابلية النقل عبر GDPR, CCPA/CPRA, LGPD, PDPA, وDPDP.
* [إدارة الموافقة](/compliance/consent-management) — على جدول وسيط
  حالة الموافقة التي قد يعتمد عليها نشاط كأساس قانوني.
* [قوائم رفض والإحباط](/compliance/opt-out-suppression) — كيف تتدفق
  نتائج المسح ورفض الموافقة إلى الإحباط.
* [مرجع API → الامتثال](/api-reference/endpoints/compliance) — مخططات
  الطلب/الاستجابة كاملة (مُعاد إنتاجها من API الحي).
