دليل الوصول إلى الإنتاج
يوفر Authentik بوابة الروابط التشغيلية التي تتطلب SSO:
https://auth.shambus.com/if/user/
تظهر فيها Studio وGrafana وGlitchTip. لا تُعرض لوحة Traefik لأن API واللوحة
يبقيان داخل شبكة Docker عمداً. تستخدم MinIO بياناتها المدمجة بعد فتح
minio-console.shambus.com، بينما تبقى الكتابة إلى ntfy خلف Authentik.
الفهرس الآمن على الخادم
ينشئ الأمر التالي فهرساً بصلاحية 0600 يحتوي الروابط وأسماء هويات QA ومكان
كل سر، لكنه لا ينسخ كلمة مرور أو مفتاح API أو TOTP:
cd /opt/shambus
./infrastructure/scripts/production-access-inventory.sh write
less /opt/shambus/.operator-access/index.txt
المصدر الوحيد لأسرار البنية هو /opt/shambus/.env.prod المحمي. لا تنقله إلى
التوثيق أو Git ولا تنشئ نسخة جامعة دائمة منه، لأن جمع كل الأسرار في ملف ثانٍ
يوسع أثر أي تسريب.
بيانات حسابات الاختبار
تُشتق كلمات مرور وتفاصيل TOTP لحسابات المنصة والشركة والسائق بصورة حتمية من سر QA الموجود في الإنتاج، ولا تُخزن كنص صريح في المستودع. أنشئ ملفاً مؤقتاً فقط عند الحاجة:
./infrastructure/scripts/production-access-inventory.sh \
export-qa /tmp/shambus-qa.env
chmod 600 /tmp/shambus-qa.env
احذف الملف فور انتهاء الاختبار:
shred --iterations=3 --zero --remove /tmp/shambus-qa.env
مجموعة Playwright المحمية آمنة لإعادة التشغيل من ناحية ملكية بياناتها: تنشئ
راكباً ورحلات وباصاً وتكليف سائق عند الحاجة، وتحذف ما أنشأته في afterAll.
اختبار الحجز النقدي لا يستخدم صندوق مشغل موجود؛ يفشل مغلقاً إذا وجد صندوقاً
مفتوحاً مسبقاً، وإلا يفتح صندوق QA مميزاً ويوازنه ويغلقه في finally ثم يحذف
سجله بعد الحجوزات التابعة. لا تشغل عدة نسخ من مجموعة الحجز بالتوازي على شركة
QA نفسها.
حد قفل المقاعد الحقيقي مشترك بحسب IP وهو 20 محاولة خلال 10 دقائق. لذلك قد
تعيد التشخيصات المتكررة مباشرةً 429 قبل وصول محاولة إلى عقد القفل الذري؛
احترم Retry-After وشغّل المصفوفة الكاملة مرة واحدة في النافذة النظيفة، ولا
تعطل الحماية أو تغيّر عنوان العميل لتجميل نتيجة الاختبار.
آخر تحقق كامل في 2026-08-21 اجتاز 27/27 رحلة في 1.3 دقيقة على الإصدار
a5814d8. إذا ظهر 429 في مسار Supabase Auth، تحقق أولاً من أن إضافة Kong
الحية تعرض limit_by=ip لمساري auth-v1 وauth-v1-user؛ لا تعالج المشكلة
برفع الحد أو مسح العدادات قبل إثبات هوية bucket.
يغطي التصدير أدوار SUPER_ADMIN وADMIN وSUPPORT وOWNER ومسؤول الشركة
والموزع والموظف والسائق، إضافة إلى هاتف الراكب. يبقى ENABLE_INTERNAL_PROD_SEEDING
معطلاً في التشغيل العادي حتى لا يعيد restart إنشاء الحسابات أو تدويرها.
فقدان بيانات الدخول
- كلمة مرور Authentik لا يمكن استخراجها من قاعدة البيانات؛ استخدم recovery.
- أسرار الخدمات تُدوّر من
.env.prodثم تُعاد الحاويات المتأثرة فقط. - بيانات QA تُعاد اشتقاقها بالأمر السابق بدلاً من الاحتفاظ بنسخة plaintext.
- لا تُفتح منافذ PostgreSQL أو Redis أو Prometheus أو Loki أو Traefik للإنترنت.