إن سجل التدقيق لوكيل برمجة مشترك هو سجل للإضافة فقط، يتضمن سطراً واحداً لكل طلب وسطراً واحداً لكل موافقة، يحتفظ به مالك الجهاز ويمكنه تصديره. يجيب السجل، بعد وقوع الحدث، عمن طلب من الوكيل فعل ماذا، ومن سمح بذلك، وما الذي تم تنفيذه فعلياً، وما كلفته. إذا كان الوكيل لا يُستخدم إلا من قِبل مالكه، فإن النص الكامل الخاص بالـ runtime نفسه كافٍ. ولكن في اللحظة التي يتمكن فيها شخص ثانٍ من إرسال طلبات، لا يعود كافياً.
يوضح هذا المقال هذه الحقول، بالترتيب الذي يحتاجه القارئ، ثم الأشياء التي يجب استبعادها تماماً.
The request line
يُنتج كل طلب سطراً واحداً بالضبط عندما يصل إلى حالة نهائية.
The approval line
تحصل الموافقات على سطر خاص بها لأنها قرارات، والقرارات يقرؤها أشخاص مختلفون عن قراء عمليات التشغيل.
أسطر الطلبات وأسطر الموافقات، مع ظهور عملية دفع معتمدة باللون الكهرماني وحذف منتهي الصلاحية باللون الأحمر.
What must not be in the log
- الأسرار. تسجل موافقة بيانات الاعتماد أنه تم الوصول إلى مفتاح ما، لا المفتاح نفسه.
- محتويات الملفات. تقتصر الـ diffs على المسارات وعدد الأسطر. التغيير موجود في المستودع، حيث تنطبق عليه قيود الوصول الخاصة بالمستودع نفسه.
- المخرجات الكاملة للأوامر. يكفي الجزء الأخير لتفسير سبب الفشل. يمكن أن تحتوي السجلات الكاملة على أي شيء.
- الغرف الأخرى. يقتصر سجل كل غرفة على تلك الغرفة. يرى المالك جميع الغرف؛ بينما يرى الأعضاء غرفتهم فقط.
Properties, not just fields
Append-only. لا أحد يعدل السجل، بما في ذلك المالك. والتصحيحات تكون أسطراً جديدة.
Owner-held. الشخص الذي نفّذ جهازه العمل هو من يحتفظ بالسجل ويمكنه تصديره. يرى أصحاب الطلبات أسطرهم الخاصة داخل الغرفة.
Complete under revocation. إلغاء تفويض أو جهاز يلغي العمل قيد الانتظار ويتيح للعمل الجاري إكماله، وبالتالي لا يحتوي السجل أبداً على فجوة من نوع "تم تشغيل شيء ما لكننا توقفنا عن المراقبة".
Owner actions included. لا يخضع المالك للموافقات على وكيله الخاص، ولكن طلباته تُسجل بنفس الطريقة. السجل الذي يكتفي بتسجيل إجراءات المستخدمين الخارجيين لا يسجل سوى نصف المخاطر.
Reading the log
تتكرر ثلاثة أسئلة في أغلب الأحيان، وتجيب الحقول المذكورة أعلاه عن كل منها بفلتر واحد.
- "من أجرى push لذلك؟" صفِّ أسطر الموافقة حسب rule = push، واقرأ صاحب الطلب ومن قرر.
- "لماذا استغرق هذا الطلب ساعة؟" قارن بين وقت الإنشاء ووقت البدء؛ فانتظار الموافقة هو السبب عادةً.
- "كم كلفني إعارة وكيلي هذا الشهر؟" اجمع الاستخدام في أسطر الطلبات التي لا يكون فيها صاحب الطلب هو المالك.
Frequently asked questions
Is the room timeline the audit log? الـ timeline هو السجل التفصيلي والمقروء بشرياً لعملية تشغيل واحدة. أما سجل التدقيق فهو ملخص بسطر واحد لكل حدث عبر مختلف عمليات التشغيل، وهو مصمم للتصفية والتصدير. يحتفظ muti بكليهما؛ ويُشتق السجل من نفس الأحداث التي يرفعها الـ daemon. انظر ما يرفعه الـ daemon.
How long is it kept? يتم الاحتفاظ بأسطر الطلبات والموافقات طوال فترة بقاء الغرفة. يؤدي حذف الغرفة إلى حذف مؤقت لها؛ ويبقى السجل للمالك.
Can a requester see other people’s lines? يرى صاحب الطلب الـ timeline الخاص بالغرفة، والذي يتضمن طلبات الجميع في تلك الغرفة. أما التصدير فهو حق للمالك وحده.
Do owner requests need approval to be logged? لا. تُسجل عمليات تشغيل المالك دون موافقات، مع rule = owner.
السجل هو ما يجعل عبارة "يمكنك إلغاؤها لاحقاً" وعداً حقيقياً. امنح وكيلك غرفة وسيأتي مزوداً بسجل.
نُشر في