
Andrew Hanna

Andrew Hanna

الإجابة باختصار: قانون SOX يطلب منك إثبات أن الشخص الذي بنى التغيير ليس هو من أطلقه للإنتاج، وأن كل تغيير في الإنتاج يرجع إلى طلب معتمد. أما GDPR فيطلب إثبات أن البيانات الشخصية جرى تقليلها وحمايتها، حتى داخل بيئات الـ sandbox. والخبر الجيد أن أي pipeline عادي في Salesforce ينتج معظم هذه الأدلة أصلاً، فالمطلوب هو ضبط الـ pipeline بحيث يفرض الضوابط بنفسه بدل إعادة تجميعها يدوياً مرة كل سنة.
قانونان مختلفان، لكن لهما مطلب مشترك واحد: ضوابط مصمّمة ومفروضة وقابلة للإثبات.
لا يذكر أي منهما أداة بعينها. كلاهما يطلب الأشياء الثلاثة نفسها: ضابط، ودليل على تنفيذه، ودليل على أنه نُفّذ في كل مرة.
ليست كلها، وتحديد ذلك مبكراً هو ما يبقي التدقيق صغيراً. نطاق SOX يتبع الأرقام المالية:
نطاق GDPR شكله معكوس: يتبع البيانات الشخصية أينما كانت، أي غالباً Contact و Lead و Case و Person Account ونصوص المحادثات وكل نسخة sandbox منها.
وثّق النطاق قبل التدقيق. الإجابة عن سؤال "أي بيانات وصفية داخل النطاق" لأول مرة داخل اجتماع التدقيق هي بالضبط ما يحوّل المراجعة إلى أسبوعين من إطفاء الحرائق.
فصل المهام يعني أن كاتب التغيير لا يمكن أن يكون هو من ينقله إلى الإنتاج. الـ change sets لا تستطيع فرض ذلك، لأن من يملك النشر يملك البناء أيضاً. ضع الضابط داخل الـ pipeline بدلاً من ذلك:
المدققون يعملون بالعينات. يختارون عدداً من تغييرات الإنتاج ويطلبون منك تتبع كل واحد من الطلب حتى الإطلاق. الـ pipeline يجيب بروابط لا بلقطات شاشة:
خاصيتان تجعلان هذا الدليل ينجح: أن يكون غير قابل للتعديل حتى لا يعدّل أحد التاريخ لاحقاً، وأن يكون كاملاً، أي لا يوجد طريق إلى الإنتاج يتجاوزه. الـ pipeline الذي يغطي 90% من التغييرات يسقط في الضابط، لأن العينة قد تقع في الـ 10% الباقية.
تحديث الـ full sandbox ينسخ بيانات شخصية من الإنتاج إلى بيئة صلاحياتها أوسع ومراقبتها أضعف وعدد مستخدميها أكبر. هذه عملية معالجة، وتحتاج نفس التبرير الذي تحتاجه أي معالجة أخرى.
أطول مما يحتفظ به Salesforce نيابة عنك. الـ Setup Audit Trail يحتفظ بنافذة متحركة مدتها 180 يوماً ويمكن تنزيلها كملف CSV. أما Field History Tracking فيحتفظ بنحو 18 شهراً في الواجهة و24 شهراً عبر الـ API، إلا إذا اشتركت في Field Audit Trail ضمن Shield وضبطت سياسة احتفاظ. دورات SOX سنوية والأدلة تُطلب عن الفترة كاملة، فالنوافذ الأصلية لا تكفي وحدها.
Git مع منصة الـ DevOps يحلّان ذلك بهدوء: تاريخ المستودع دائم، وسجلات النشر تعيش خارج الـ org بدل أن تنتهي صلاحيتها بداخله.
لا شيء من هذا يحتاج منتج امتثال منفصل. يحتاج فقط عملية الإصدار التي كنت تريدها أصلاً، مضبوطة بحيث تكون الضوابط هي الطريق الوحيد. معظم منصات Salesforce DevOps يمكن إعدادها بهذا الشكل، ومنها Copado و Gearset و AutoRABIT و Flosum و Serpent. وتجد أدلة عملية أخرى مثل هذا الدليل في مكتبة SF Guides عندنا.
هل ينطبق SOX على الـ org كلها؟
لا. النطاق يتبع التقارير المالية: عروض الأسعار والطلبات والفوترة وكائنات الإيراد والأتمتة التي تمسّها. وثّق الحدود بنفسك قبل أن يوسّعها المدقق.
هل يمكن تحقيق الامتثال لـ SOX باستخدام change sets؟
صعب جداً. الـ change sets لا تفصل الكاتب عن الناشر ولا تترك سجل اعتماد مرتبطاً، فينتهي بك الأمر ببناء طبقة أدلة يدوية بجانبها.
هل الـ full sandbox ببيانات إنتاج مخالفة لـ GDPR؟
ليست مخالفة تلقائياً، لكنها معالجة يجب تبريرها وتقليلها وتأمينها. زرع مجموعة جزئية وإخفاء الحقول الشخصية عند التحديث هو الطريق العملي.
من يجب أن يعتمد الإطلاق للإنتاج؟
شخص غير الكاتب، بالإضافة إلى مالك العملية من جانب الأعمال لكل ما يقع داخل نطاق SOX. سجّل الاعتمادين معاً على التغيير.
بدون التزام.