حول المنصة
مرحبًا بك في نظام Portal البيئي — منصة موحدة للمصادقة وإدارة المستخدمين والمنظمات. تعرف على بنيتنا والبنية التحتية وسير عمل التطوير.
نظرة عامة على المنصة
نظام Portal البيئي عبارة عن منصة حديثة وقابلة للتطوير مبنية باستخدام تقنيات على مستوى المؤسسات وأفضل الممارسات. توفر مصادقة آمنة وإدارة شاملة للمستخدمين وإدارة مرنة للمنظمات من خلال مجموعة من التطبيقات المترابطة.
التطبيقات الأساسية
البنية المعمارية
تتبع المنصة بنية الخدمات الصغيرة الحديثة مع فصل واضح للمسؤوليات.
الواجهة الأمامية
بنية الواجهة الأمامية
الواجهة الأمامية مبنية باستخدام تقنيات الويب الحديثة:
- إطار العمل: Next.js (قائم على React)
- اللغة: TypeScript
- التصميم: Tailwind CSS + مكونات مخصصة
- إدارة الحالة: React Context + Server Components
- المصادقة: Kicklock SDK
- التدويل: دعم مدمج لـ i18n (4 لغات)
كل تطبيق قابل للنشر بشكل مستقل:
| التطبيق | المنفذ | الغرض |
|---|---|---|
| AUTH | 3003 | واجهة المصادقة |
| USR | 3001 | إدارة ملف المستخدم |
| ORG | 3002 | إدارة المنظمة |
| DOCS | 3000 | بوابة التوثيق |
| Landing | 3004 | موقع تسويقي |
جميع تطبيقات الواجهة الأمامية تشترك في المكونات المشتركة من خلال هيكل monorepo، مما يضمن الاتساق عبر المنصة.
البنية التحتية لـ Kubernetes
تعمل منصتنا على Kubernetes مع هيكل مبسط للمساحات الاسمية.
البيئات
نحافظ على بيئتين فقط من أجل البساطة والكفاءة:
| البيئة | الغرض | أمثلة المساحات الاسمية |
|---|---|---|
| Develop | التطوير والاختبار | portal-develop |
| Production | نظام الإنتاج المباشر | portal-master |
مهم: لا توجد بيئة staging. ننشر مباشرة من develop إلى production بعد الاختبار الشامل.
هيكل المساحات الاسمية
البنية التحتية لـ Kubernetes منظمة في المساحات الاسمية التالية:
سير عمل التطوير
تضمن عملية التطوير لدينا جودة الكود وموثوقية النشر.
إنشاء مهمة في Trello
يبدأ كل العمل في Trello. يتم إنشاء المهام كبطاقات تحتوي على:
- وصف واضح ومعايير القبول
- الأولوية والعلامات
- أعضاء الفريق المكلفون
إنشاء فرع
لكل مهمة، يتم إنشاء فرع مخصص:
feature/TASK-123-add-new-feature
bugfix/TASK-456-fix-login-issueتتبع أسماء الفروع اصطلاحات تسمية صارمة بناءً على نوع المهمة ومعرفها.
التطوير
يحدث كل التطوير في الفرع الخاص بالمهمة:
- كتابة الكود متبعًا اصطلاحات المشروع
- إضافة الاختبارات (إلزامي)
- تحديث التوثيق إذا لزم الأمر
سير عمل GitHub
كل شيء يتم من خلال GitHub:
- دفع الكود إلى GitHub
- إنشاء Pull Request
- تشغيل الاختبارات التلقائية على GitHub Actions
- مراجعة الكود من قبل أعضاء الفريق
- الدمج في
developبعد الموافقة
حرج: التغييرات خارج GitHub مستحيلة تقنيًا. جميع عمليات النشر تتم بواسطة دفعات Git.
النشر التلقائي
بمجرد دمج الكود:
- الدمج في
develop→ ينشر تلقائيًا إلى بيئة التطوير - الدمج في
master→ ينشر تلقائيًا إلى بيئة الإنتاج
خط أنابيب CI/CD
كل دفعة للكود تطلق خط الأنابيب الآلي الخاص بنا:
┌─────────────────────────────────────────────────────────┐
│ Git Push │
└──────────────────────┬──────────────────────────────────┘
│
┌────────────▼────────────┐
│ Lint & Type Check │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ تشغيل الاختبارات │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ بناء صورة Docker │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ دفع إلى السجل │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ نشر إلى K8s │
└─────────────────────────┘العملية بأكملها آلية بالكامل. التدخل اليدوي مطلوب فقط للموافقة ومراجعة الكود.
نقاط نهاية الخدمة
تطبيقات الواجهة الأمامية
| التطبيق | التطوير | الإنتاج |
|---|---|---|
| AUTH | https://auth.dev.ibragimov.uk | https://auth.ibragimov.uk |
| USR | https://usr.dev.ibragimov.uk | https://usr.ibragimov.uk |
| ORG | https://org.dev.ibragimov.uk | https://org.ibragimov.uk |
| DOCS | https://docs.dev.ibragimov.uk | https://docs.ibragimov.uk |
واجهات برمجة التطبيقات الخلفية
| الخدمة | التطوير | الإنتاج |
|---|---|---|
| api-authn | https://api-authn.dev.ibragimov.uk | https://api-authn.ibragimov.uk |
| api-authz | https://api-authz.dev.ibragimov.uk | https://api-authz.ibragimov.uk |
| api-user | https://api-user.dev.ibragimov.uk | https://api-user.ibragimov.uk |
جميع نقاط النهاية تستخدم HTTPS مع إدارة تلقائية لشهادات SSL.
مجموعة التقنيات
تقنيات الواجهة الأمامية
- Next.js 14+ — إطار عمل React مع App Router
- TypeScript — تطوير آمن من حيث النوع
- Tailwind CSS — تصميم utility-first
- Kicklock — SDK المصادقة
- Nextra — إطار عمل التوثيق (تطبيق DOCS)
- React Hook Form — إدارة النماذج
- Zod — التحقق من صحة المخطط
تقنيات الخلفية
- Spring Boot 3.x — إطار عمل التطبيق
- Java 21 — لغة البرمجة
- PostgreSQL — قاعدة البيانات
- Liquibase — ترحيلات قاعدة البيانات
- Kicklock — موفر المصادقة (مستضافة ذاتيًا)
- Hibernate — ORM
- Maven — أداة البناء
DevOps والبنية التحتية
- Kubernetes — تنسيق الحاويات
- Helm — مدير الحزم لـ Kubernetes
- Docker — الحاويات
- GitHub Actions — خطوط أنابيب CI/CD
- Nginx — الوكيل العكسي وموازنة الحمل
الأمان والامتثال
الأمان هو أولويتنا القصوى. جميع المكونات مصممة بمبادئ الأمان أولاً.
تدابير الأمان
- مصادقة مستضافة ذاتيًا: جميع بيانات الاعتماد مخزنة على خوادمنا
- تشفير من طرف إلى طرف: TLS 1.3 لجميع الاتصالات
- سيادة البيانات: تحكم كامل في بيانات المستخدم
- التحكم في الوصول القائم على الأدوار: إدارة دقيقة للأذونات
- تسجيل المراجعة: جميع الإجراءات مسجلة وقابلة للتتبع
- تحديثات أمان منتظمة: تحديثات آلية للتبعيات