تصنيف حقول البيانات ضمن فئات GDPR
تفحص أداة تصنيف بيانات GDPR قائمة أسماء الحقول المجمعة، ثم تسند كل اسم إلى فئة خاصة مرجحة أو إلى البيانات الشخصية العامة.
شغّل الأداة مجانًا
تتعرف على الدلالات الإنجليزية الشائعة المتعلقة بالصحة والتعرف البيومتري والوراثة والأصل العرقي أو الإثني والآراء السياسية والمعتقدات الدينية أو الفلسفية والعضوية النقابية والحياة الجنسية والتوجه الجنسي. النتيجة حتمية وسهلة التدقيق، ولذلك تفيد في المراجعة الأولية لسجل البيانات. ولأن الأسماء قد تكون مبهمة، ينبغي لكم مراجعة القيم الفعلية وسياق المعالجة قبل اتخاذ قرار امتثال.
ابدؤوا سجل البيانات بتصنيفات متسقة
تبدأ مراجعات الخصوصية غالبا بجدول يضم مئات أعمدة قواعد البيانات وحقول النماذج وخصائص الأحداث وعناوين التصدير. وقد تستخدم الأسماء snake case أو camel case أو الشرطات أو الاختصارات أو مصطلحات اختارتها فرق مختلفة. توحّد الأداة هذه الفواصل وتقارن كل اسم بمجموعة واضحة من الدلالات الإنجليزية. فمثلا يصنف medical_history ضمن البيانات الصحية، بينما يبقى customerEmail ضمن البيانات الشخصية العامة. تحتفظ النتيجة بالاسم الأصلي، وتعرض الفئة، وتبين إن كانت خاصة، وتذكر القاعدة التي سببت المطابقة. كما تلخص الأعداد القائمة كي تحددوا مواضع المراجعة بسرعة. توفر هذه العملية خطوة أولى قابلة للتكرار قبل تقييم أثر حماية البيانات أو تحديث سجل أنشطة المعالجة أو مراجعة المخطط. ولا تتصل الأداة بأي قاعدة بيانات ولا ترسل طلبا إلى طرف آخر؛ بل تصنف أسماء الحقول التي تقدمونها فقط.
افهموا أسلوب المطابقة المتحفظ
تبحث الخوارزمية عن كلمات وعبارات كاملة بعد توحيدها، ولا تعتمد على مقاطع عشوائية. لذلك لا تؤدي أحرف قصيرة موجودة مصادفة داخل كلمة غير مرتبطة إلى تصنيف الحقل ضمن فئة خاصة. تشمل القواعد المصطلحات المرتبطة بالصحة والسجلات السريرية، والمعرفات البيومترية المستخدمة للتعرف، والمواد الوراثية والجينومية، والأصل العرقي أو الإثني، والآراء السياسية، والمعتقدات الدينية أو الفلسفية، والعضوية النقابية، والحياة الجنسية، والتوجه الجنسي. عند ظهور أكثر من دلالة، يختار ترتيب ثابت فئة واحدة، فتنتج المدخلات المتطابقة نتائج متطابقة دائما. تحمل الأسماء التي لا تطابق دلالة خاصة القيمة general_personal_data، لكن ذلك لا يعني أنها مجهولة الهوية أو آمنة أو خارج GDPR. تظل الأسماء والعناوين ومعرفات الأجهزة وأرقام الحسابات بيانات شخصية محتملة. راجعوا القاعدة المعروضة لفهم السبب واكتشاف مصطلحات مؤسستكم التي لا تعرفها القواعد العامة.
استخدموا النتيجة للفرز لا كمشورة قانونية
لا يكشف اسم العمود كل ما تخزنه البيانات ولا الغرض من معالجتها. فقد يحتوي notes على معلومات طبية أو آراء سياسية أو لا يحتوي على بيانات شخصية إطلاقا. وبالمثل، لا يصبح face_photo بيومتريا لمجرد احتوائه على صورة؛ إذ تعتمد الفئة الخاصة على معالجة تقنية محددة بقصد التعرف الفريد. لذلك استخدموا الخريطة لترتيب الأولويات لا لإصدار حكم قانوني. ناقشوا الحقول المعلّمة مع مسؤولي البيانات، وافحصوا عينات ضمن ضوابط مناسبة، ووثقوا الأغراض، وتحققوا من الأساس القانوني والضمانات مع مختص مؤهل. راجعوا أيضا حقول النص الحر والرموز الغامضة غير المعلّمة. وللحوكمة الآلية، احتفظوا بالقائمة الأصلية والنتيجة والتعديلات البشرية معا حتى يمكن إعادة القرار. تبلغ كلفة API مقدار $0.002 لكل طلب، بينما يتيح المتصفح فحصا فوريا. ولا تتغير النتيجة بسبب الشبكة أو العشوائية أو التاريخ الحالي.
حالات الاستخدام
ترتيب مراجعة مخطط البيانات
علّموا الحقول المحتمل خضوعها للمادة 9 قبل أن يراجع المختص قاموس البيانات بالتفصيل.
مراجعة خصائص التحليلات
افحصوا أسماء الأحداث والملفات بحثا عن دلالات حساسة قبل اعتماد خطة القياس.
توحيد استبيانات الموردين
طبقوا التصنيفات الأولية نفسها على قوائم الحقول المقدمة من معالجين وموردين مختلفين.
الأسئلة الشائعة
هل تعني نتيجة البيانات العامة أن الحقل غير خاضع للتنظيم؟
لا. تعني فقط عدم العثور على دلالة مدعومة لفئة خاصة، وقد يظل الحقل محتويا على بيانات شخصية تخضع لـGDPR.
هل تفحص الأداة قيم الحقول؟
لا. تقيّم الأسماء فقط، وينبغي لكم مراجعة القيم والغرض والمصدر والسياق بصورة مستقلة.
لماذا قد تبقى صورة الوجه ضمن البيانات العامة؟
ليست كل صورة بيانات بيومترية خاصة تلقائيا. تبحث القواعد عن دلالات صريحة للتعرف، مثل قالب الوجه أو هندسته.
ما أنماط التسمية المدعومة؟
توحّد الأداة الأسماء الإنجليزية المكتوبة بصيغ camelCase وsnake_case وkebab-case أو المفصولة بنقاط أو مسافات.
ما كلفة API؟
تبلغ الكلفة $0.002 لكل طلب. ويمكن تشغيل المنطق الحتمي نفسه داخل المتصفح أيضا.
هل تغني الأداة عن المراجعة القانونية أو مراجعة حماية البيانات؟
لا. إنها وسيلة لفرز سجل البيانات، وليست مشورة قانونية أو قرارا مبنيا على سياق المعالجة الفعلي.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/security/gdpr-data-category-map \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fields":["customer_email","medical_history","face_template","union_membership"]}'const res = await fetch("https://api.kit.forhosting.com/security/gdpr-data-category-map", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fields": [
"customer_email",
"medical_history",
"face_template",
"union_membership"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/gdpr-data-category-map",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fields": [
"customer_email",
"medical_history",
"face_template",
"union_membership"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/gdpr-data-category-map", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fields":["customer_email","medical_history","face_template","union_membership"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fields":["customer_email","medical_history","face_template","union_membership"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/gdpr-data-category-map", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"fields": [
"customer_email",
"medical_history",
"face_template",
"union_membership"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.gdpr_data_category_map",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 500 |
max_chars_per_item | 200 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |