عن المشروع
immudb هو قاعدة بيانات خفيفة مفتوحة المصدر مبنية حول مبدأ عدم القابلية للتغيير ومبادئ الثقة الصفرية. يمكن إضافة السجلات كنسخ جديدة لكن لا يمكن تعديلها أو حذفها أبدًا، ويتم تتبع كل تغيير في سجل تاريخي متسق تشفيريًا وقابل للتحقق يمكن للعملاء التحقق منه دون الحاجة إلى الثقة بخادم قاعدة البيانات نفسه. يمكن أن يعمل كقاعدة بيانات علائقية (SQL) أو مخزن key-value أو قاعدة بيانات بنموذج وثائقي، ويمكن تشغيله كخدمة مستقلة أو تضمينه داخل العملية كمكتبة Go.
القدرات الرئيسية الموثقة في المشروع:
- وصول متعدد النماذج: SQL مع المعاملات والكتل الثنائية، وواجهة key-value مع قراءات وكتابات موثقة، ونموذج وثائقي.
- توافق مع بروتوكول PostgreSQL السلكي: يمكن للعملاء وأدوات ORM القياسية لـ PostgreSQL (psql، pgAdmin، JDBC، SQLAlchemy، Django، GORM، ActiveRecord، lib/pq، pgx) الاتصال مباشرة. الميزات المدعومة تشمل عبارات RETURNING، تعبيرات الجداول الشائعة (WITH / WITH RECURSIVE)، دوال النوافذ (ROW_NUMBER، RANK، LAG، LEAD وغيرها)، العروض، التسلسلات، مجموعة واسعة من الوصلات والاستعلامات الفرعية، عمليات المجموعات، التحكم في المعاملات عبر SAVEPOINT، الاستيراد الجماعي عبر COPY FROM stdin، الفهارس الجزئية، وأكثر من 75 دالة مدمجة. محاكاة الكتالوج عبر جداول pg_catalog وinformation_schema تدعم فحص ORM. القيود الموثقة تشمل عدم وجود إجراءات مخزنة أو PLpgSQL، وعدم وجود فهارس GIN/GiST (فقط B-tree)، وعدم وجود أعمدة مولّدة.
- استعلامات السفر عبر الزمن: صيغة DIFF OF SQL تقارن حالة الجدول بين نطاقين من المعاملات، مع تسمية الصفوف كـ INSERT أو UPDATE أو DELETE.
- التحقق التشفيري عبر SQL: دوال مثل immudb_state() وimmudb_verify_row() وimmudb_verify_tx() وimmudb_history() تكشف نظام الإثبات مباشرة في الاستعلامات.
- تسجيل تدقيق منظم: أحداث تدقيق JSON غير قابلة للتغيير اختيارية لكل عملية gRPC (الطابع الزمني، المستخدم، عنوان IP، قاعدة البيانات، الطريقة، الفئة، المدة، معرّف الجلسة)، مخزنة في مخزن KV غير القابل للتلاعب الخاص بـ immudb وقابلة للتصدير إلى أنظمة SIEM.
- خيارات النشر: ثنائيات مسبقة البناء، صور Docker، مخططات Helm لـ Kubernetes، ووضع مكتبة مضمّنة. يمكن تخزين البيانات على Amazon S3 أو بدائل متوافقة مع S3 مثل MinIO، مع دعم أدوار AWS IAM ومصدر بيانات الاعتماد لـ Fargate.
- منظومة العملاء: SDKs رسمية لـ Java وGo (بما في ذلك محوّل GORM) و.NET وPython وNode.js؛ وأداة immuclient السطرية للإدارة التفاعلية؛ وimmugw، بوابة REST للغات التي لا تملك SDK. يُوجَّه مستخدمو Rust إلى عملاء PostgreSQL القياسيين أو أكواد gRPC المولّدة، لأن حزمة immudb على crates.io غير رسمية.
- تقوية الأمان: التحقق من تجاوز المسار في استعادة الأرشيف، وإبطال الجلسة الفوري عند تغيير المستخدم أو الأذونات، وتقييد أذونات ملفات الرموز، وتحذير عند التشغيل عند تشغيل خادم PostgreSQL المتوافق دون TLS.
تشمل الاستخدامات الواقعية المبلّغ عنها تخزين تغييرات الحقول الحساسة بشكل غير قابل للتغيير (مثل بيانات الدفع)، وحماية وصفات بناء CI/CD، وتخزين الشهادات والتحقق من السلامة، وتدفقات سجلات قابلة للكشف عن التلاعب، وتسجيل بيانات المستشعرات أو الموقع. تتوفر التوثيق وعرض وحدة تحكم الويب وساحة لعب SDK لـ Python على موقع المشروع.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.