Memlira Connect
عقد قراءة صغير يقدّمه نظامك، فيزامن Memlira بياناته. لا مكتبة تثبّتها، ولا كتابة على نظامك.
v0. المصادقة Authorization: Bearer <key> بمفتاح قراءة فقط يصدره نظامك. JSON بـ snake_case، وتواريخ ISO 8601 مع المنطقة الزمنية. المطلوب بالحد الأدنى: manifest وكيان واحد.manifest
أول ما نطلبه: ماذا يقدّم نظامك. نقرأ منه الكيانات والحقول ونطابقها مع مخطط Memlira.
// GET /memlira/v0/manifest { "version": "0", "system": "Northwind ERP", "currency": "SAR", "timezone": "Asia/Riyadh", "entities": ["customers", "orders", "order_items", "invoices"], "stages": [{"entity": "order_items", "values": ["cutting", "stitching", "assembly", "lasting", "pressing", "warehouse", "export"]}], "custom_fields": [{"entity": "orders", "key": "model_no", "type": "text", "label": "رقم الموديل"}] }
الكيانات: customers، items، orders، order_items، invoices، payments، shipments، bookings، stock_levels.
نقاط النهاية
/memlira/v0/manifestالكيانات المتوفرة، والحقول الخاصة، ومراحل التشغيل، والعملة والمنطقة الزمنية/memlira/v0/{entity}?updated_since=…&cursor=…&limit=500سجلات الكيان مرتبة بـ updated_at، مع next_cursor/memlira/v0/deleted?since=…المحذوفات، أو "deleted": true داخل السجلالشروط الإجبارية
updated_atموثوق لكل سجل: يتغيّر مع أي تعديل على السجل أو بنوده، ومع المنطقة الزمنية.- ترتيب ثابت للصفحات:
ORDER BY updated_at, external_id، وnext_cursorمبني على الاثنين، فلا يضيع سجلان لهما نفسupdated_atبين صفحتين. - المحذوفات: سجل فيه
"deleted": true، أوGET /memlira/v0/deleted?since=…. والنظام الذي لا يحذف أبدًا يعلن ذلك في الـ manifest بـ"deletes": "none". updated_sinceشامل (>=). التكرار نعالجه عندنا.
// GET /memlira/v0/orders?updated_since=… (deleted record) { "external_id": "21852", "deleted": true, "updated_at": "2026-10-14T13:40:00+03:00" }
ونجري مزامنة كاملة كل ليلة تصحّح أي فرق، وتعلّم السجلات التي اختفت كمحذوفة. الأخطاء بأكواد HTTP القياسية، ونحترم Retry-After مع 429.
الاختبار
من لوحة Memlira: «اختبر الاتصال» يطلب الـ manifest وأول صفحة من كل كيان، ويتحقق من المفتاح، ويعرض لك ما وجده قبل أي مزامنة.