تنقيح المعلومات الشخصية القابلة للتعريف في ملف PDF عبر Connect
تنقيح المعلومات الشخصية القابلة للتعريف في ملف PDF عبر Connect
قسم بعنوان «تنقيح المعلومات الشخصية القابلة للتعريف في ملف PDF عبر Connect»لمحة سريعة
قسم بعنوان «لمحة سريعة»توضّح هذه الوصفة كيفية إزالة المعلومات الشخصية القابلة للتعريف (PII) المكتشفة من طبقة النص في المستند باستخدام أدوات التنقيح التي يوفّرها NextPDF Connect. هذه الأدوات من فئة Enterprise. ينشئ ToolRegistry الأدوات redact_pdf و zone_redact_pdf و deidentify_pdf عبر اكتشاف فئات الخصوصية من فئة Enterprise (RedactionEngine + PiiDetector) باستخدام class_exists(). ويسجّل كل أداة ضمن فئة enterprise فقط عندما تكون تلك الفئات قابلة للتحميل التلقائي. في التثبيت الذي يقتصر على المصدر المفتوح، تكون الأدوات غائبة: يفشل الاستدعاء بخطأ أداة غير معروفة بدلاً من أن يتدهور بصمت. تعلن الأدوات الثلاث كلها destructiveHint: true. تعيد عملية التعديل كتابة محتوى الصفحة، ولا يمكن التراجع عنها من المستند المعدَّل.
توثّق هذه الصفحة سلوك الأداة عبر واجهة Connect. لا يقدّم سير عمل التنقيح شهادة بأن المستند خالٍ من البيانات الشخصية بعد الاستدعاء. يعمل الاكتشاف على طبقة النص القابلة للاستخراج فقط، ويبقى التحقق من النتيجة مسؤولية النشر.
التثبيت
قسم بعنوان «التثبيت»composer require nextpdf/serverلا تُسجَّل أدوات التنقيح إلا عند تثبيت وحدة الخصوصية من فئة Enterprise إلى جانب الخادم. وهي متاحة ضمن nextpdf/premium. تحقّق من وجود الأداة في النشر العامل قبل الاعتماد عليها:
./vendor/bin/nextpdf-mcp <<'EOF'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"c","version":"1.0.0"}}}{"jsonrpc":"2.0","method":"notifications/initialized"}{"jsonrpc":"2.0","id":2,"method":"tools/list"}EOFإذا كانت redact_pdf غائبة عن نتيجة tools/list، فهذا يعني أن فئات الخصوصية من فئة Enterprise لم تُحَلّ في هذا التثبيت. راجع /connect/tool-catalog/ لمعرفة كيفية حساب السجلّ مجموعة الأدوات لكل فئة عند الإقلاع.
نظرة عامة مفاهيمية
قسم بعنوان «نظرة عامة مفاهيمية»تغطي الأدوات الثلاث ثلاث استراتيجيات للتنقيح. جميعها من فئة Enterprise، وتحمل جميعها تلميح الإجراء المدمِّر:
redact_pdf— تكتشف البيانات الشخصية ضمن محتوى النص العادي في المستند وتزيلها باستخدام كاشف مدمج، ثم تُعيد المحتوى المعدَّل وتقريراً منظَّماً.zone_redact_pdf— تطبّق تنقيحات مناطقية قائمة على الإحداثيات على المحتوى النصي العادي. استخدمها عندما تعرف المنطقة بحسب الموضع لا بحسب النمط.deidentify_pdf— تطبّق استراتيجية منهجية لإزالة الهوية (تنقيح أو حذف) عبر الكيانات المكتشفة.
تؤدي إزالة المحتوى من دفق محتوى الصفحة إلى تعديل ذلك الدفق تعديلاً مدمِّراً: تُعاد كتابة البايتات المتأثرة ولا يمكن استرجاعها من المستند المعدَّل (ISO 32000-2 §14.11). وبحسب التصميم، يسجّل التقرير عدد المحارف وموضع كل عملية إزالة، ولا يسجّل النص المُزال نفسه أبداً.
سطح API
قسم بعنوان «سطح API»توفّر حزمة Enterprise التي تعرّف كل أداة أيضاً مخطط الطلب والاستجابة الدقيق لها. توثّق هذه الصفحة عقد الاستدعاء عبر Connect، لا قائمة ثابتة بالمعاملات. أسماء الأدوات التي جرى التحقق منها مقابل السجلّ العامل هي redact_pdf و zone_redact_pdf و deidentify_pdf، وجميعها في فئة document مع destructiveHint: true. المرجع المعتمد للكتالوج هو /connect/tool-catalog/. لا تعيد هذه الوصفة ذكر عدد الأدوات، لأن تلك القيمة خاصية وقت تشغيل للنشر.
عينة شيفرة — البدء السريع
قسم بعنوان «عينة شيفرة — البدء السريع»اكتشف المحتوى وأزِله عبر Model Context Protocol (MCP) (tools/call). تعرض الوسائط أدناه شكل الاستدعاء. مخطط الوسائط المعتمد هو الذي تُعيده tools/list في نشرك:
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "redact_pdf", "arguments": { "source": "/var/lib/nextpdf/in/employee-directory.pdf" } }}يُعيد الاستدعاء الناجح تقريراً. لكل عملية إزالة، يسجّل كل إدخال الصفحة وتسمية الفئة وعدد المحارف الأصلي وإطاراً محيطاً، لا النص المُزال.
عينة شيفرة — الإنتاج
قسم بعنوان «عينة شيفرة — الإنتاج»عامِل استدعاء التنقيح على أنه عملية مدمِّرة، وافحص التقرير قبل إصدار المستند. عند استخدام وسيط نقل شبكي، عالِج فشل النقل والخطأ على مستوى الأداة كحالتين منفصلتين:
curl -sS -X POST https://connect.example.com/v1/tools/redact_pdf \ -H 'Authorization: Bearer '"$NEXTPDF_CONNECT_TOKEN" \ -H 'Content-Type: application/json' \ -d '{"source":"/var/lib/nextpdf/in/legal-discovery-batch.pdf"}' \ -o /tmp/redaction-report.json -w '%{http_code}' > /tmp/redaction-statusstatus="$(cat /tmp/redaction-status)"if [ "$status" != "200" ]; then # 4xx/5xx is a normal HTTP outcome the caller inspects, not a transport # failure. A connection error (curl non-zero exit) is the separate case. echo "redact_pdf returned HTTP $status; inspect the body, do not release the document" >&2 exit 1fiلا تُصدِر المستند المعدَّل إلا بعد أن يراجع التقرير مراجع بشري أو ضابط لاحق في السلسلة. يؤدي حجب الإصدار خلف تلك المراجعة إلى وضع الضابط عند النقطة التي يُدخل فيها التعديل الآلي خطر البيانات المتبقية (IEC 31010:2019).
الحالات الحدّية والمزالق
قسم بعنوان «الحالات الحدّية والمزالق»- ملف PDF ممسوح ضوئياً بلا طبقة نص. يعمل الاكتشاف على طبقة النص القابلة للاستخراج. تُنتج الصفحة التي تحتوي على صورة فقط صفر عمليات إزالة، وهذا ليس خطأ. إذا كان المحتوى مُنقَّطاً، فشغّل التعرّف الضوئي على المحارف (OCR) على المستند قبل التنقيح.
- مصدر مشفَّر. زوّد كلمة مرور المستند عبر مخطط وسائط الأداة. من دونها، يفشل الاستدعاء بدلاً من أن يعالج جزءاً فقط من المستند.
- أداة غائبة. في التثبيت الذي يقتصر على المصدر المفتوح، لا تُحَلّ فئات الخصوصية من فئة Enterprise ولا تُسجَّل
redact_pdf، فيفشل الاستدعاء بخطأ أداة غير معروفة. هذا هو الحد المقصود، لا تدهور. - اكتشافات متداخلة. عندما يطابق أكثر من كاشف المنطقة نفسها، تزيل الأداة المنطقة مرة واحدة وتزيل التكرار من التقرير.
الأداء
قسم بعنوان «الأداء»ميزانية الأداء في البيانات الوصفية هي سقف توثيقي، لا ضمان على مستوى الخدمة. تُعالَج المستندات الكبيرة صفحة بصفحة. خطّط لإعادة تشغيل الاستدعاء على مجموعة فرعية من نطاق الصفحات بدلاً من رفع مهلة عامة.
ملاحظات أمنية
قسم بعنوان «ملاحظات أمنية»إقامة البيانات وتدابير تخفيف المعلومات الشخصية القابلة للتعريف
قسم بعنوان «إقامة البيانات وتدابير تخفيف المعلومات الشخصية القابلة للتعريف»يعالج مضيف Connect نص المستند ضمن العملية نفسها. يحذف التقرير عمداً النص المُزال ويُبلّغ عن الأعداد والمواضع فقط، بحيث لا يعيد التقرير إدخال البيانات الشخصية التي يصفها. إقامة البيانات على مستوى النشر للمدخلات وللمخرجات المعدَّلة هي مسؤولية المُدمِج، لا خاصية من خصائص الأداة.
القياس عن بُعد الآمن وتنقية السجلات
قسم بعنوان «القياس عن بُعد الآمن وتنقية السجلات»لا تسجّل مسار المستند المصدر أو نص التقرير عند مستوى سجلّ يُصدَّر خارجياً. سجّل فقط اسم الأداة ومعرّف الطلب ونتيجة pass/fail.
نموذج التهديد
قسم بعنوان «نموذج التهديد»التنقيح الذي يغطي النص بصرياً لكنه لا يزيله يترك البيانات قابلة للاستخراج. تعيد هذه الأدوات كتابة دفق المحتوى المتأثر بدلاً من تركيب مستطيل فوقه؛ ولا يمكن استرجاع البايتات المُزالة من المستند المعدَّل (ISO 32000-2 §14.11). يبقى خطر متبقٍّ عندما يفوّت الكاشف محتوى ما: نمط خارج قواعده، أو نص موجود فقط كصورة مُنقَّطة. يخفّف سير العمل ذلك الخطر بمراجعة التقرير الإلزامية، لا بادعاء الاكتمال.
سلوك وضع FIPS
قسم بعنوان «سلوك وضع FIPS»لا يُجري التنقيح أي عملية تشفيرية ولا يتأثر بسياسة وضع Federal Information Processing Standards (FIPS) على المضيف.
المطابقة
قسم بعنوان «المطابقة»| الادعاء | البند | reference_id |
|---|---|---|
| إزالة المحتوى تعيد كتابة دفق المحتوى المتأثر | ISO 32000-2 §14.11 | |
| التنقيح يضع علامة ثم يزيل؛ والإزالة تعديل للمحتوى | ISO 32000-2 §14.11 | |
| ضابط موضوع عند النقطة التي يُدخل فيها التعديل الآلي الخطر | IEC 31010:2019 |
لا يشهد دعم أدوات التنقيح بأن المستند المعالَج خالٍ من البيانات الشخصية. المراجعة المستقلة هي التي تتخذ ذلك القرار.
السياق التجاري
قسم بعنوان «السياق التجاري»أدوات التنقيح من فئة Enterprise، ولا تُسجَّل إلا عند تثبيت nextpdf/premium إلى جانب الخادم. راجع رابط التحويل في البيانات الوصفية.
تفاصيل Connect
قسم بعنوان «تفاصيل Connect»توفّر وسائط النقل (MCP / REST / gRPC)
قسم بعنوان «توفّر وسائط النقل (MCP / REST / gRPC)»استدعِ الأدوات بالطريقة نفسها عبر كل وسيط نقل يستخدم مُنفِّذ الأدوات المشترك: MCP tools/call، ونقطة نهاية أداة REST، وخدمة gRPC. مخطط الوسائط مستقل عن وسيط النقل، وهو الذي تُعيده tools/list (MCP) أو واصف الخدمة (gRPC).
فئة مخاطر HITL
قسم بعنوان «فئة مخاطر HITL»تعلن الأدوات الثلاث كلها destructiveHint: true. عندما يرفع مشغّلٌ أداة إلى مستوى مخاطر approval_required عبر تجاوز في الإعداد، يصبح الاستدعاء خاضعاً لـ ConfirmationGate. لا يجوز للتجاوز إلا رفع المخاطر، ولا يخفضها أبداً. راجع /connect/hitl-risk-tiers/.
غلاف JSON لبوابة التأكيد
قسم بعنوان «غلاف JSON لبوابة التأكيد»عندما تكون الأداة خاضعة للبوابة وتُستدعى من دون رمز صالح، تُعيد البوابة غلاف تحدٍّ بهذا الشكل:
{ "allowed": false, "challenge": "<human-readable text>", "token": "confirm_<nonce>" }يعيد المُستدعي استدعاء الأداة نفسها مع ضبط arguments._confirmation_token على الرمز الصادر. يربط الرمز اسم الأداة ورقماً مستخدماً مرة واحدة ومدة بقاء قدرها 300 ثانية — لا الوسائط — وهو صالح لاستخدام واحد.
انظر أيضاً
قسم بعنوان «انظر أيضاً»- /connect/tool-catalog/ — كيف يحسب السجلّ مجموعة الأدوات لكل فئة.
- /connect/hitl-risk-tiers/ — نموذج المخاطر رباعي المستويات والبوابة.
- /cookbook/connect/extract-text-content/ — معاينة النص القابل للاستخراج قبل التنقيح.
- /cookbook/connect/digital-signature/ — توقيع المستند المعدَّل من أجل سلسلة الحيازة.